$image->annotateImage($draw, 10, 45, 0, 'The quick brown fox');
如果第三个参数“Y”值为 0,则文本将不可见,因为文本打印在图像上方,而不是图像上。
解决方案是根据您选择的字体大小,从大约 40 的 Y 值开始并进行试验。
[此外:]
当希望在照片上打印一些文本并使其文本与背景图像形成足够的对比度时,请使用 4 字节代码表示颜色和透明度。
它与 ImageMagick 的命令行指令“convert”中的参数“-undercolor”使用的 4 字节代码相同。
前 3 个字节是 RGB 颜色代码,第四个字节是透明度字节。
<?php
$picin = new Imagick($pic1);
$picin->scaleimage(800,0);
$height = $picin->getimageheight();
$draw = new ImagickDraw();
$draw->setFillColor('#ffff00');
$draw->setFont('Eurostile');
$draw->setFontSize(21);
$draw->setTextUnderColor('#ff000088');
$picin->annotateImage($draw,40,$height-10,0,"Hallo");
$picin->writeimage($pic6);
?>
示例代码在半透明红色背景上生成黄色文本。
$pic1 和 $pic6 之前被定义为目录/文件字符串。