トップページ >  PHP >  PHPで画像を作成する
初版2013/04/13: 最終更新日2013/04/13
PHPで画像を作成する
目次
PHPで画像を作成する
背景色を指定する
画像に文字を出力する
画像を保存する
PHPで画像を作成する
PHPで、HTMLファイル内で画像を作成するにはimgタグ内に別のphpファイルを作成する方法があります。
imgタグはsrc=~~.phpというようにphpファイルを指定します。phpファイル内で画像を出力すると画像表示することが可能です。

imagecreatetruecolorメソッドで画像を作成します。第一引数は横幅、第二引数は縦幅です。
これで出力すると、背景色が黒の画像が表示されます。

<?php
//画像作成
$img = imagecreatetruecolor(100, 40);

//画像出力
header("Content-type: image/png");
header("Cache-control: no-cache");
imagepng($img);

//メモリ解放
imagedestroy($img);
?>

以下、実行例です。



背景色を指定する
デフォルトでは背景色は黒色なので、imagecolorallocateメソッドとimagefilledrectangleメソッドを使用して、他の色に変更します。
imagecolorallocateの第一引数は画像オブジェクトの変数、第二引数はR、第三引数はG、第四引数はBです。
imagefilledrectangleの第一引数は画像オブジェクトの変数、第二引数は画像の左上X座標、第三引数は画像の左上Y座標、第四引数は画像の左下X座標、第五引数は画像の左下Y座標、第六引数はimagecolorallocate関数の戻り値を指定します。

<?php
//画像作成
$img = imagecreatetruecolor(100, 40);

//背景色設定
$backcol = imagecolorallocate($img, 220, 220, 220);
//背景色を塗る
imagefilledrectangle($img, 0, 0, 100, 40, $backcol);

//画像出力
header("Content-type: image/png");
header("Cache-control: no-cache");
imagepng($img);

//メモリ解放
imagedestroy($img);
?>

以下、実行例です。



画像に文字を出力する
画像に文字を描画するには、imagestring関数を使用します。この関数は水平に文字を描画します。
imagestringの第一引数は画像オブジェクトの変数、第二引数はフォントサイズで1~5まで指定できます。
第三引数は文字の左上のX座標、第四引数は文字の左上のY座標、第五引数は描画する文字列、第六引数はimagecolorallocate関数の戻り値を指定します。

<?php
    //画像作成
    $img = imagecreatetruecolor(100, 40);

    //背景色設定
    $backcol = imagecolorallocate($img, 220, 220, 220);
    //背景色を塗る
    imagefilledrectangle($img, 0, 0, 100, 40, $backcol);

    //文字色設定
    $strcol = imagecolorallocate($img, 0, 0, 0);
    //文字を書く
    imagestring($img, 3, 15, 15, 'testPNG', $strcol);

    //画像出力
    header("Content-type: image/png");
    header("Cache-control: no-cache");
    imagepng($img);

    //メモリ解放
    imagedestroy($img);
?>

以下、実行例です。



画像を保存する
画像を描画することはできましたが、実際画像を作成したい場合は、imagepng関数の第二引数に画像ファイル名を指定します。
これで画像が作成され、サーバ上に保存されます。

<?php
#    imagepng($img);
    imagepng($img,'sample.png');
?>