2012.12.05
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ
PHPのライブラリの1つ、GDについて簡単に。
プログラムの初歩と言えば「Hello World.」。
GDを使って「Hello World.」を表示させるところまでやってみようと思います。
準備
ここはPHP経験者には説明不要かと思います。
表示させたい文字列を$Message変数に入れておきます。
//表示させる文章を設定
$Message = "Hello World.";
新しい画像の作成
新しい画像の作成をします。
下のコードではImageCreateを使って横120ピクセル縦30ピクセルの画像を作成しています。
//新規イメージの作成
$Img = ImageCreate (120,30) or die ("Cannot Initialize new GD image stream");
色の設定
先ほど作成した画像と文字の色を設定します。
数字が3つ並んでいるところはそれぞれRGBを0~255までの範囲で設定できます。
//背景色を設定(オレンジ色)
$background_color = ImageColorAllocate ($Img, 255, 200, 0);
//文字の色を設定(緑色)
$text_color = ImageColorAllocate ($Img, 0, 150, 100);
背景と文字の合体
一番最初、変数に入れた文字列と先ほど設定しておいた色の設定を適応させて重ねます。
「30」は文字の大きさ、「5」と「7」は左5ピクセル上から7ピクセルのところに文字の左上が来るようにする設定です。
//背景に文字を重ねる
ImageString ($Img, 30, 5, 7, $Message, $text_color);
画像としてブラウザに送信
作成した画像を表示させなければ意味が無いので、ブラウザに送信してあげます。
「//画像出力」で、Jpeg形式で画像をあんまり圧縮しないで出力しています
//バイナリをテキストと誤認させない為の処理
mb_http_output("pass");
//ファイル名を画像から取得(通常の表示モード)
header("Content-Disposition: inline; filename=message.jpg");
//キャッシュを使用しない
header("Cache-Control: "no-cache"");
//ヘッダ出力
header ("Content-type: image/jpeg");
//画像出力
imagejpeg ($Img,"",100);
//メモリ開放
ImageDestroy ($Img);
完成画像
上のプログラムを実行させると、こんな感じの画像が出力されます。