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

その結果、私は

ü

更新II

ついに私はこれを引き起こしているものを見つけました。

この問題は、ドキュメントの文字セットが定義されていないために発生しますが、スクリプトに文字セットを設定すると、ドキュメントのタイプをimage / pngに設定する必要があるため、imagickは機能しません。

しかし、どうすれば修正できるのかわかりません。

4

1 に答える 1

1

Ok。私は解決策を見つけました。

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 に答える