我正在尝试在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);
因此我得到了
ü
更新II
最后我找到了造成这种情况的原因。
出现问题是因为没有定义文档的字符集,但如果为脚本设置了字符集,那么imagick不起作用,因为文档的类型需要设置为image / png。
但我不知道如何解决它。
答案 0 :(得分:1)
确定。我找到了解决方案。
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"));
........