/var/www/vhosts/ihelp.ro/httpdocs/vendor/intervention/image/src/Intervention/Image/Imagick
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/intervention/image/src/Intervention/Image/Imagick/Font.php (3395B)
setStrokeAntialias(true);
$draw->setTextAntialias(true);
// set font file
if ($this->hasApplicableFontFile()) {
$draw->setFont($this->file);
} else {
throw new RuntimeException(
"Font file must be provided to apply text to image."
);
}
// parse text color
$color = new Color($this->color);
$draw->setFontSize($this->size);
$draw->setFillColor($color->getPixel());
$draw->setTextKerning($this->kerning);
// align horizontal
switch (strtolower($this->align)) {
case 'center':
$align = \Imagick::ALIGN_CENTER;
break;
case 'right':
$align = \Imagick::ALIGN_RIGHT;
break;
default:
$align = \Imagick::ALIGN_LEFT;
break;
}
$draw->setTextAlignment($align);
// align vertical
if (strtolower($this->valign) != 'bottom') {
// corrections on y-position
switch (strtolower($this->valign)) {
case 'center':
case 'middle':
// calculate box size
$dimensions = $image->getCore()->queryFontMetrics($draw, $this->text);
$posy = $posy + $dimensions['textHeight'] * 0.65 / 2;
break;
case 'top':
// calculate box size
$dimensions = $image->getCore()->queryFontMetrics($draw, $this->text, false);
$posy = $posy + $dimensions['characterHeight'];
break;
}
}
// apply to image
$image->getCore()->annotateImage($draw, $posx, $posy, $this->angle * (-1), $this->text);
}
/**
* Calculates bounding box of current font setting
*
* @return array
*/
public function getBoxSize()
{
$box = [];
// build draw object
$draw = new \ImagickDraw();
$draw->setStrokeAntialias(true);
$draw->setTextAntialias(true);
// set font file
if ($this->hasApplicableFontFile()) {
$draw->setFont($this->file);
} else {
throw new RuntimeException(
"Font file must be provided to apply text to image."
);
}
$draw->setFontSize($this->size);
$dimensions = (new \Imagick())->queryFontMetrics($draw, $this->text);
if (strlen($this->text) == 0) {
// no text -> no boxsize
$box['width'] = 0;
$box['height'] = 0;
} else {
// get boxsize
$box['width'] = intval(abs($dimensions['textWidth']));
$box['height'] = intval(abs($dimensions['textHeight']));
}
return $box;
}
}