0
exec($IM_path."convert
    -size 800x300 xc:black  
    -font ".$linktottf."
    -pointsize 16
    -draw \"fill white stroke none decorate underline text 580,28 Kühle Frische, not working\"
    output.png");

上記のコードの「テキストの描画」部分が機能しません。output.png には「Khle」しか表示されないため、特殊文字、空白、引用符などに問題があるはずです。</p>

私はたくさん試しました(エスケープ、別の引用符、バックスラッシュなど)

私は今、多くの時間を失ってしまいました…だから、あなたが私を助けてくれることを願っています. どうも!

4

1 に答える 1

1

引用符も描画したい場合は、それらを別の引用符のセットで囲む必要があります。二重引用符は単一引用符で囲みます。

label:'\"fill white stroke none decorate underline text 580,28 Kühle Frische, not working\"'

特殊文字については、スクリプトを unix utf-8 形式で保存してみてください (Textpad などのエディターには、保存ダイアログを表示するときにファイルを保存するためのオプションがあり、同様のエディターには同じオプションが必要です)。

そして、システム LANG を utf を使用するように設定します。

LANG=en_US.utf-8;

exec("LANG=en_US.utf-8; ".$IM_path."convert -size 800x300 xc:black -font ".$linktottf." -pointsize 16 label:'\"fill white stroke none decorate underline text 580,28 Kühle Frische, not working\"' output.png");

描画ではなく「ラベル」が必要なようです。また、1 行にする必要があります。そうしないと、別のコマンドとして解釈されます。

于 2013-06-27T08:12:01.813 に答える