我正在尝试在Imagick对象上添加一些文本。
但是我使用 setTextEncoding() 函数,它仍然不起作用。
.......
$draw = new ImagickDraw();
$draw->setTextEncoding('utf-8');
$draw->setFont($fpath.'/process/ARIAL.TTF');
$draw->setFontSize(80);
$draw->setFillColor("#ffffff");
/*** annotate the text on the image ***/
$imageOrg->annotateImage($draw, 60, 100, 0, "onur küçükkeçe");
........
结果我得到,
onur küçükkeçe
知道为什么它不起作用吗?
提前谢谢。
更新
如果我将$text变量设置为类似 chr(252) 的东西,那么我会得到一个正确的结果
$text=chr(252);
$imageOrg->annotateImage($draw, 60, 100, 0, $text);
结果我得到
ü
更新二
最后,我找到了导致这种情况的原因。
出现此问题的原因是未定义文档的字符集,但如果为脚本设置了字符集,则 imagick 不起作用,因为文档的类型需要设置为 image/png。
但我不知道如何解决它。
好的。我找到了解决方案。
PHP utf8_decode() 函数解决了这个问题
.......
$draw = new ImagickDraw();
$draw->setTextEncoding('utf-8');
$draw->setFont($fpath.'/process/ARIAL.TTF');
$draw->setFontSize(80);
$draw->setFillColor("#ffffff");
/*** annotate the text on the image ***/
$imageOrg->annotateImage($draw, 60, 100, 0, utf8_decode("onur küçükkeçe"));
........