- 締切済み
文字を画像として出力したい
サイト上の情報などを頼りに、下記のようなコードを書きました。 <?php header("Content-Type: image/gif"); $size = 14; $text = "テスト"; $text = mb_convert_encoding($text, "UTF-8", "EUC"); $font = "/home/kymsweb/www/modx/assets/files/fonts/hgrsmp.ttf"; $bbox = ImageTTFBBox($size, 0, $font, $text); $h = $bbox[1] - $bbox[7] + 8; //縦 $w = $bbox[2] - $bbox[0] + 8; //横 $im = ImageCreate($w, $h); ImageColorAllocateAlpha($im, 155, 255, 255, 127); $chars = ImageColorAllocate($im, 155, 0, 255); ImageTTFText($im, $size, 0, 1, $h - 8, $chars, $font, $text); ImageGIF($im); ImageDestroy($im); exit; ?> これをそのままphpファイルとして保存し、サーバ上に転送し アクセスすると「テスト」という文字が画像として表示されます。 ここまでは分かったのですが。 これをさらに応用し、任意のhtmlファイル(正確には拡張子phpのファイルですが)の 中にこのコードを埋め込んで表示したいと考えていますが、当然ながら htmlソースにバイナリを同梱してしまうようなことはできません。 具体的には、CMSのプラグインを自前で作りたいと考えています。 たとえばタイトル画像を任意のフォントを使って画像として リアルタイムに書き出すような使い方です。 このような場合、どのような仕組みを考えるといいのか アドバイスをいただきたいです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
# 1さんの方法で良いと思います。 少し個人的な意見になりますが、 <img src="img.php?text=hogehoge"> と書くと、img.phpにtext=hogehogeでテキストを渡すと画像作るのか、流用しちゃおうかな、なんて人間が出てこないとは限りません(被害妄想でしょうか?)。 私の場合、こういう場合はセッションを使って変数を渡しています。 ご参考まで。
- awazak
- ベストアンサー率36% (61/165)
上のファイルが。「img.php」だとしたら、 任意のhtmlファイルでは <img src="img.php">で表示できるけど…。 そういうことではないですか? <img src="img.php?text=hogehoge"> とかもできます。