$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 之前定义为目录/文件字符串。