想象一下annotateImage:如何从左上角设置文本位置

时间:2016-01-24 00:45:53

标签: php text position imagick

我试图围绕annotateImage创建一个包装函数,以便能够设置给定文本的确切顶部和左侧位置。默认方法从基线设置y位置,这意味着如果想要在图像上的精确位置绘制文本,则必须进行大量实验。这就是我的意思......

$image->annotateImage($draw, 0, 0, 0, 'The quick brown fox');

在上面的代码中,文本是不可见的,因为y位置是0.所以为了解决这个问题,我已经开始使用以下函数,我在其中添加了40到y的偏移...

function addText($image, $draw, $x, $y, $text) {
  $y = $y + 40;
  $image->annotateImage($draw, $x, $y, 0, $text);
}

addText($image, $draw, 0, 0, 'The quick brown fox'); // draw at 0, 0

但它不太可靠,因为它没有考虑任何因素,如字体大小等......

实现这一目标的最佳途径是什么?

1 个答案:

答案 0 :(得分:2)

我找到了一个效果很好的解决方案。如果重力设置为“NorthWest”,则文本会从左上角保持x y位置。

$draw->setGravity(Imagick::GRAVITY_NORTHWEST);
$image->annotateImage($draw, 0, 0, 0, 'The quick brown fox');