- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像描画と一般の関数は同じphpファイルには書けないのでしょうか?
)
phpで画像描画と一般の関数を同じファイルに記述する方法
このQ&Aのポイント
- phpで画像描画と一般の関数を同じファイルに記述する場合、文字化けなどの問題が発生し、うまく表示されないことがあります。
- 以下のコードでは、画像描画の関数と一般の関数を同じファイルに記述していますが、黒い図形のみが表示されます。
- 解決するためには、画像描画の関数と一般の関数を別のファイルに分けて記述するか、画像描画の関数を最初に実行するようにする必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
png画像としてデータを出力しているのでtestprint1()、testprint2()で出力している文字列も画像データとみなされます。期待している文字列が出力されないだけでなく、期待している画像も出力されないはずです。 そもそもprintを使っても画像に文字を埋め込むことはできません。 画像に文字列を埋め込むには、imagestring()を使います。 尚、日本語を扱いたい場合はimagestring()ではなくimagettftext()を使う必要があります。 http://jp2.php.net/manual/ja/function.imagestring.php http://jp2.php.net/manual/ja/function.imagettftext.php さらに、imagecreatetruecolor()で作成した画像の背景は元々が黒で、imagecolorallocate()の最初のコールにて背景色を設定することはできないようです。 同じ大きさの矩形で塗りつぶすか、imagecolortransparent()で初期状態における背景色(黒)を透過色に定義することで背景色を設定することができます。 http://jp2.php.net/manual/ja/function.imagecolortransparent.php
お礼
早速のご回答どうもありがとうございます。 画像として出力しているので、testprint1(),testprint2()が、 正常に動作しないのですね。詳しく書いていただき、誠にありがとうございました。