PHPのimagefill()関数の使い方:画像を指定色で塗りつぶす方法
PHPのimagefill()関数とは
imagefill()関数は、指定した座標を起点として画像を指定色で塗りつぶすための関数です。開始点から隣接する同色の領域へ順番に色を適用する「フラッドフィル(flood fill)」として動作するため、画像の背景一括着色や特定領域の塗りつぶしなどに活用できます。
構文
imagefill(img, x, y, color)
パラメータ
img
imagecreatetruecolor()などで作成した画像リソースを指定します。x
塗りつぶしを開始する点のx座標です。y
塗りつぶしを開始する点のy座標です。color
塗りつぶしに使用する色を指定します。通常はimagecolorallocate()で作成した色識別子を使用します。
戻り値
imagefill()関数は、処理が成功した場合にTRUE、失敗した場合にFALSEを返します。
使用例
以下は、400×400ピクセルの画像を作成し、全体を薄い緑色で塗りつぶしてPNG形式で出力するサンプルコードです。
<?php
$img = imagecreatetruecolor(400, 400);
$color = imagecolorallocate($img, 190, 255, 120);
imagefill($img, 0, 0, $color);
header('Content-type: image/png');
imagepng($img);
imagedestroy($img);
?>
出力結果
上記のコードを実行すると、次のように緑色で塗りつぶされた画像が出力されます。

補足ポイント
- imagefill()は開始点と同じ色の隣接領域のみを塗りつぶします。画像全体を確実に塗りつぶしたい場合は、左上の座標(0, 0)を起点に指定すると安全です。
- 塗りつぶしに使う色は、必ず対象の画像リソースに対してimagecolorallocate()で割り当てる必要があります。
- 処理が完了したら、imagedestroy()を呼び出してメモリを解放することを推奨します。
-
PHPのimagefilledrectangle()関数の使い方 – 塗りつぶし矩形を描画する方法
PHPのimagefilledrectangle()関数は、指定した座標をもとに、色で塗りつぶされた矩形(長方形)を画像上に描画するためのGDライブラリ関数です。図形の作成やグラフィック処理などでよく利用されます。構文imagefilledrectangle( $img, $x1, $y1, $x2, $y2, $color )パラメータimgimagecreatetruecolor() などで作成した画像リソースを指定します。x1矩形の1つ目の頂点(始点)のX座標を指定します。y1矩形の1つ目の頂点(始点)のY座標を指定します。x2矩形の2つ目の頂点(対角の終点)のX座標を指定します。y2矩
-
PHPのimagefilledellipse()関数とは?塗りつぶし楕円の描画方法を解説
PHPのimagefilledellipse()関数は、指定した座標を中心として塗りつぶしのある楕円を描画するために使用されるGDライブラリの関数です。図形描画や画像生成を行う際に非常に便利な関数の一つです。 構文 imagefilledellipse( $img, $cx, $cy, $width, $height, $color ) パラメータ img:imagecreatetruecolor()関数などで作成した画像リソースを指定します。この画像に対して楕円が描画されます。 cx:楕円の中心のX座標(横方向の位置)を指定します。 cy:楕円の中心のY座標(縦方向の位置)を指定します。