2

我正在尝试在 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。

但我不知道我该如何解决它。

4

1 回答 1

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"));

........
于 2012-05-11T06:40:49.420 回答