[PHP] PNG画像出力とか

※当サイトでは広告を掲載しています

小型のプロフィール表示がしたくて、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というファイル名で画像が作成される。

これはなかなか面白いかも。

コメント

タイトルとURLをコピーしました