小型のプロフィール表示がしたくて、JavaScriptで表示するように作ったFF11プロフィールツールでしたが、どうしてもフォントとかが気に食わなくて、何とかXI-ProfさんのところのようにPNG画像で出力したいなと思いつつ、早数ヶ月。ついに、PNG画像で出力できるようになりました。
仕事の合間を縫って、少しずつ調べながらだったので、結構時間がかかったなぁ。
とりあえず備忘録を兼ねて画像出力部分をメモメモ。
// 画像のサイズを決める
$img = ImageCreate( [横サイズ], [縦サイズ] );
// 色を作成(色は10進数0-255か、16進数0x00-0xff)
$bgcolor = ImageColorAllocate( $img, [赤], [緑], [青] );
$textcolor = ImageColorAllocate( $img, [赤], [緑], [青] );
// 背景を背景色で塗る
ImageFilledRectangle( $img, [X始点], [Y始点], [X終点], [Y終点], $bgcolor );
// 文字を書く
ImageTTFText( $img, [フォントサイズ], [フォント角度], [X座標], [Y座標], $textcolor, [TTFファイル], [文字列] );
// 文字を書く(フォントファイルを使わない場合)
ImageString( $img, [フォント1-5], [X座標], [Y座標], [文字列], $textcolor );
// 画像を出力(PHPからPNG画像として出力)
Imagepng( $imgHandle );
// 画像を出力(PNG画像をファイルとして出力)
Imagepng( $imgHandle, [ファイル名] );
// リソースの開放
ImageDestroy( $imgHandle );
ということで、サンプルコード。
<?php
Header( "Content-type: image/png" );
Header( "Cache-control: no-cache" );
# 画像枠作成
$img = ImageCreate( 200, 40 );
# 色の作成
$sotowaku = ImageColorAllocate( $img, 96, 96, 96 );
$haikei = ImageColorAllocate( $img, 255, 200, 200 );
$moji = ImageColorAllocate( $img, 96, 96, 96 );
# 背景を塗る
ImageFilledrectangle( $img, 0, 0, 199, 39, $sotowaku );
ImageFilledrectangle( $img, 1, 1, 198, 38, $haikei );
# 文字を書く
ImageString( $img, 5, 55, 12, "TestBanner", $moji );
# 画像出力
Imagepng( $img );
Imagepng( $img, "./000.png" );
# メモリ開放
ImageDestroy( $img );
?>
これを実行すると、画面に下のようなバナーを表示して、さらにこのサンプルコードを置いたフォルダに000.pngというファイル名で画像が作成される。
これはなかなか面白いかも。
コメント