PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのimagefilltoborder()関数で特定の色に塗りつぶす方法(GDライブラリ)

imagefilltoborder()関数とは

imagefilltoborder()は、PHPに組み込まれているGDライブラリの関数の一つで、指定した境界色を基準に、特定の色で領域を塗りつぶす「フラッドフィル(境界塗りつぶし)」処理を行います。塗りつぶしの開始点は(x, y)座標で指定し、画像の左上は(0, 0)となります。開始点から境界色に到達するまでの領域が、指定した色で一気に塗りつぶされます。

構文

bool imagefilltoborder(resource $image, int $x, int $y, int $border, int $color)

パラメータ

imagefilltoborder()は、$image、$x、$y、$border、$colorの5つのパラメータを受け取ります。

  • $image − 処理対象の画像リソース。

  • $x − 塗りつぶし開始点のx座標。

  • $y − 塗りつぶし開始点のy座標。

  • $border − 境界線の色。

  • $color − 塗りつぶしに使用する色。

戻り値

成功した場合はTrue、失敗した場合はFalseを返します。

例1:GIF画像を塗りつぶす

<?php
    // ローカルドライブのフォルダからGIF画像を読み込む
    $img = imagecreatefromgif('C:\xampp\htdocs\Images\img39.gif');

    // 画像に使用する色を作成する
    $borderColor = imagecolorallocate($img, 0, 200, 0);
    $fillColor = imagecolorallocate($img, 122, 122, 122);

    // 境界まで塗りつぶす
    imagefilltoborder($img, 0, 0, $borderColor, $fillColor);

    // 出力画像を表示する
    header('Content-type: image/gif');
    imagepng($img);
?>

出力結果

PHPでimagefilltoborder()関数を使用する前のGIF画像:

PHPのimagefilltoborder()関数で特定の色に塗りつぶす方法(GDライブラリ)

PHPでimagefilltoborder()関数を使用した後のGIF画像:

PHPのimagefilltoborder()関数で特定の色に塗りつぶす方法(GDライブラリ)

例2:楕円形を色で塗りつぶす

<?php
    // 画像を作成し、背景をグレーに設定
    $img = imagecreatetruecolor(700, 500);
    imagefilledrectangle($img, 0, 0, 500, 500, imagecolorallocate($img, 122, 122, 122));

    // 黒い境界線を持つ楕円を描画
    imageellipse($img, 300, 300, 300, 300, imagecolorallocate($img, 0, 0, 0));

    // 境界色と塗りつぶし色を設定
    $border = imagecolorallocate($img, 0, 0, 0);
    $fill = imagecolorallocate($img, 0, 0, 255);

    // 選択領域を塗りつぶす
    imagefilltoborder($img, 300, 300, $border, $fill);

    // 出力画像を表示し、メモリを解放
    header('Content-type: image/gif');
    imagepng($img);
    imagedestroy($img);
?>

出力結果

PHPのimagefilltoborder()関数で特定の色に塗りつぶす方法(GDライブラリ)

このように、imagefilltoborder()関数を使えば、既存の画像の一部を塗りつぶすだけでなく、imageellipse()などで描画した図形の内部を簡単に着色することもできます。境界色と塗りつぶし色を組み合わせることで、柔軟な画像編集が可能になります。

  1. PHPのimagefilledrectangle()関数の使い方 – 塗りつぶし矩形を描画する方法

    PHPのimagefilledrectangle()関数は、指定した座標をもとに、色で塗りつぶされた矩形(長方形)を画像上に描画するためのGDライブラリ関数です。図形の作成やグラフィック処理などでよく利用されます。構文imagefilledrectangle( $img, $x1, $y1, $x2, $y2, $color )パラメータimgimagecreatetruecolor() などで作成した画像リソースを指定します。x1矩形の1つ目の頂点(始点)のX座標を指定します。y1矩形の1つ目の頂点(始点)のY座標を指定します。x2矩形の2つ目の頂点(対角の終点)のX座標を指定します。y2矩

  2. PHPのimagefilledellipse()関数とは?塗りつぶし楕円の描画方法を解説

    PHPのimagefilledellipse()関数は、指定した座標を中心として塗りつぶしのある楕円を描画するために使用されるGDライブラリの関数です。図形描画や画像生成を行う際に非常に便利な関数の一つです。 構文 imagefilledellipse( $img, $cx, $cy, $width, $height, $color ) パラメータ img:imagecreatetruecolor()関数などで作成した画像リソースを指定します。この画像に対して楕円が描画されます。 cx:楕円の中心のX座標(横方向の位置)を指定します。 cy:楕円の中心のY座標(縦方向の位置)を指定します。