【发布时间】:2012-05-10 11:39:24
【问题描述】:
我正在尝试在 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。
但我不知道该如何解决。
【问题讨论】:
-
如果您自己解决问题,最好将修复发布为答案而不是问题的更新。这样你就可以接受它,其他人也可以投票,你的问题就会从未回答的问题列表中删除。
-
@JeffreyBlake 我还不能解决问题。这是因为没有定义文档的编码。
-
我的错误。当我看到你的更新时,我以为你在说你已经解决了。
-
您的实际 PHP 脚本(代码本身)是否以 UTF-8 编码?
-
@JohnFlatness 我在记事本中打开了文档并将其保存为 UTF-8 但随后 imagick 无法输出图像,只能输出一些字符
标签: php encoding imagemagick imagick