2012-05-10 4 views
2

Imagickオブジェクトにテキストを追加しようとしています。PHP Imagick - setTextEncoding()関数が機能しない

しかし、私は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 

それは働いていない理由を任意のアイデア?

ありがとうございます。

UPDATE

私はCHR(252)のようなものに$テキスト変数を設定している場合、私は

$text=chr(252); 
$imageOrg->annotateImage($draw, 60, 100, 0, $text); 

適切な結果を得る結果として、私は

ü 

を取得更新番号

最後に私はこれを引き起こす原因を見つけました。

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

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

+0

を解決し、それが答えとして代わりの質問へのアップデートとして修正を投稿することが最善です。あなたはそれを受け入れることができ、他の人はそれをアップヴォートすることができ、あなたの質問は未回答の質問リストから削除されます。 –

+0

@JeffreyBlake私はまだ問題を解決できませんでした。これは、文書のエンコーディングが定義されていないために発生します。 –

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

........ 
+0

こんにちは私は私の問題にあなたの解決策を試みた。しかし、それはまだ動作しません。たぶんutf-8形式を正しく設定していないかもしれません。それをどうすれば保証できますか? ここに問題が記載されています:http://stackoverflow.com/questions/11101544/how-to-use-imagick-annotateimage-for-chinese-text –

関連する問題