2009年03月18日 05:21

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

| http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/447

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

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

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

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

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

ImgHeadliner プロトタイプ

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

クライアントコード

スクリプト読み込み


require_once("init.php");

フォーマット


$img->view("StyleKey.Tag.Text");

出力コード


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

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

サンプル


$img->view("Style1.h1.ImgHeadliner プロトタイプ");
$img->view("Style2.h2.ImgHeadliner プロトタイプ");
$img->view("Style3.h3.ImgHeadliner プロトタイプ");
$img->view("Style4.h4.ImgHeadliner プロトタイプ");
$img->view("Style5.h5.ImgHeadliner プロトタイプ");
$img->view("Style6.h6.ImgHeadliner プロトタイプ");

サンプル実行結果

どんなスタイルが設定してあるかは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

PHP×携帯サイト デベロッパーズバイブル

著者 : 荒木 稔 / 金額 : ¥ 2,940

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

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/447
[情報備忘録]2009年04月03日 12:06
テキストを動的に画像にする仕組み
テキストを動的に画像にする仕組みで参考になりそうなのがあったのでメモ
コメント (0)
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?


先月アクセスが多かったページ