HOME>WEBプログラム覚書>GDを利用してテキストを画像に変換

GDを利用してテキストを画像に変換

テキストをimgに変換するにはGDライブラリを利用すれば できるようなのでちょいと試してみました。

とりあえずググってみると、とてもわかりやすいサンプルが 沢山出てくるので基本はなんとなくわかるのですが 使いやすくしようとするととたんに問題発生。

header()を利用しないとダメっぽいので img出力前にhtml描画ができないという罠。

streamでどうにかできないか試しましたが 全然できそうもなかったのでタグ出力する機能と イメージ生成する機能で分離することにしました。

header()無しでできる方法ないんでしょうか・・・

ImgHeadliner プロトタイプ

その名のとおりとりあえず動くってレベルで試作です。もっといい方法ありそうな気もするので。

クライアントコード

スクリプト読み込み

PHP

  1. <?php
  2. require_once("init.php");
  3. ?>

フォーマット

PHP

  1. <?php
  2. $img->view("StyleKey.Tag.Text");
  3. ?>

出力コード

PHP

  1. <?php
  2. <Tag><span>Text</span><img src="img.php?key=md5" alt="Text" /></Tag>
  3. ?>

見出しを想定してるのでテキストあった方がいい気がするので spanで囲んであります。CSSでdisplay:noneとかで消すとよいとおもいます。

サンプル

PHP

  1. <?php
  2. $img->view("Style1.h1.ImgHeadliner プロトタイプ");
  3. $img->view("Style2.h2.ImgHeadliner プロトタイプ");
  4. $img->view("Style3.h3.ImgHeadliner プロトタイプ");
  5. $img->view("Style4.h4.ImgHeadliner プロトタイプ");
  6. $img->view("Style5.h5.ImgHeadliner プロトタイプ");
  7. $img->view("Style6.h6.ImgHeadliner プロトタイプ");
  8. ?>

サンプル実行結果

どんなスタイルが設定してあるかはImgHeadlinerStyles.phpを参照ください。

アルファが利用できるpngを利用するとアンチエイリアスが微妙なことになります。 背景色とalphaを調整することで少しはマシになります。(Style1とStyle2)

構成ファイル

ImgHeadlinerStyles.php

ここに記述したStyleKeyを利用します。

ImgHeadlinerAPI.php

出力コードを変更したい場合こちらのview()を変更。

ImgHeadliner.php

クライアントから受け取った文字列から 出力に必要な情報を集めてシリアライズして保存します。

CreateHeadLinerImg.php

出力されたkeyから保存されたオブジェクトを探して それを元に出力します。

data/

シリアライズデータを置きます。読み書き可能にしてください。

font/

確認できるようIPAフォントを同梱してます。 licence.txtをお読みになってご利用ください。

動作環境

PHP 5.x とGDライブラリが入ってれば動くかと思います。 PHP 5.2.6(lolipop)では確認できました。

ダウンロード

ImgHeadliner.zip

投稿日 2009年3月18日 05:21
カテゴリ HTML/CSS | PHP
タグ サンプルコード
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1170

コメント

コメントする
Name
Email Address
URL