想象annotateImage没有正确显示日文文本

时间:2016-04-19 17:53:56

标签: php imagick

我正在尝试将日文文字打印到图像上 我的代码:

$text = // some japanese text

$imagick = new IMagick();
// $imagick implementation

$imagickDraw = new ImagickDraw();
$imagickDraw->setFontSize(12);

$textFontMetrics = $imagick->queryFontMetrics($imagickDraw, $text);
$imagick->annotateImage($imagickDraw, ($imageWidth - $textFontMetrics['textWidth']) / 2, $imageHeight * 0.5, 0, $text);

// save imageBlob

当我检查生成的图像时,我只看到“??”而不是普通的日文文本。任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

很确定这是与字体相关的问题。确保您的字体能够显示日文字符,将该字体复制到脚本的目录中,并添加以下内容:

$draw->setFont('fonts-japanese-gothic.ttf');

其中fonts-japanese-gothic.ttf是您字体的名称。我在我的本地机器上进行了测试,结果就是这样。