注释图像两次

Annotate an image twice

我使用 Imagick 对图像进行注释:

$image = new Imagick('image.jpg');
$draw = new ImagickDraw();
$draw->setFillColor('#ffffff');
$draw->setFont('fonts/opensans-regular.ttf');
$draw->setFontSize(40);
$image->annotateImage($draw, 20, 100, 0, 'The quick fox jumps over the lazy dog');

$image->setImageFormat('png');

header('Content-type: image/png');
echo $image;

如何使用 annotateImage() 两次以插入到具有不同位置的文本元素?当我只是复制绘图段落时,最后一次使用是不可见的。我是否必须保存图像并再次编辑它或存在一种即时进行编辑的方法?提前致谢。

更新:

只添加第二个 ImagickDraw() 不起作用,它不可见。

$image = new Imagick('image.jpg');

//first
$draw = new ImagickDraw();
$draw->setFillColor('#ffffff');
$draw->setFont('fonts/opensans-regular.ttf');
$draw->setFontSize(40);
$image->annotateImage($draw, 20, 100, 0, 'The quick fox jumps over the lazy dog');

//second
$draw2 = new ImagickDraw();
$draw2->setFillColor('red');
$draw2->setFont('fonts/opensans-regular.ttf');
$draw2->setFontSize(40);
$image->annotateImage($draw2, 20, 800, 0, 'The quick fox jumps over the lazy dog');

$image->setImageFormat('png');

header('Content-type: image/png');
echo $image;

这是您可以添加到图像的第二个注释的示例。

<?php
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'white' );
$image->newImage(800, 75, $pixel);

$draw->setFillColor('black');
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );

$image->annotateImage($draw, 10, 25, 0, '1st line of annotation text here');
$image->annotateImage($draw, 10, 60, 0, '2nd line of annotation text here');
$image->setImageFormat('png');

header('Content-type: image/png');
echo $image;

根据 x,y 坐标,您可以在需要的地方添加注释。请记住,它们可以相互重叠。