PHP画像処理機能ライブラリでは、 ImageFilltoBordoryは、境界色に遭遇するまで、指定された領域で色を充填するための非常に実用的な機能です。この機能は、画像を編集して動的グラフィックを生成する場合、特に複雑な領域を色で満たす必要がある場合に非常に一般的です。
この記事では、特定のケースを通じてImageFilltoBorder機能の使用とその動作原則を詳細に紹介し、この画像処理手法をすばやくマスターするのに役立ちます。
ImageFilltoBorder関数は、指定された開始点ピクセルの色を埋め、境界色が停止するまで範囲を埋めるために使用されます。その関数定義は次のとおりです。
bool imagefilltoborder ( resource $image , int $x , int $y , int $border , int $color )
$画像:画像リソースハンドル。
$ x 、 $ y :開始フィルポイントの座標。
$ border :border colorのインデックス値、塗りつぶしはこの色の境界を越えません。
$色:塗りつぶしに使用される色インデックス値。
パディングが成功した場合はtrueを返し、それ以外の場合はfalseを返します。
異なる色の領域を持つ画像があり、特定の領域を色で満たしたいが、色を境界を越えて望んでいないとします。 ImageFilltoBorderは、プリセットの境界色に遭遇するまで指定したポイントから入力できます。
次の例は、黒い境界線で長方形を作成し、赤の内側にImageFilltoborderで埋める方法を示しています。
<?php
// 空白の画像を作成します
$width = 200;
$height = 100;
$image = imagecreatetruecolor($width, $height);
// 色を割り当てます
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$red = imagecolorallocate($image, 255, 0, 0);
// 白で満たされた背景
imagefill($image, 0, 0, $white);
// 黒い長方形の境界線を描きます
imagerectangle($image, 50, 20, 150, 80, $black);
// 使用 imagefilltoborder から(51,21)ポイントが赤を埋め始めます,黒い境界に遭遇するまで
imagefilltoborder($image, 51, 21, $black, $red);
// 出力画像
header("Content-Type: image/png");
imagepng($image);
// 無料のリソース
imagedestroy($image);
?>
最初に200x100の真の色の画像を作成します。
白い背景を設定します。
黒い長方形の境界線を描きます。
黒い境界に遭遇するまで、長方形の内側の点から赤を埋め始めます。
ブラウザからPNG形式の画像を直接出力します。
このコードを実行した後、黒い境界のある赤い塗りつぶされた長方形の領域を見ることができ、充填色は境界を超えません。
ImageFilltoBorderは、境界色に遭遇するまで満たされます。したがって、境界色は正確でなければならないか、予想範囲で塗りつぶしを超える必要があります。
境界色と充填色は同じではありません。そうしないと、塗りつぶしが無効になります。
出発点の座標は、非境界地域に配置する必要があります。そうしないと、充填効果はありません。
ImageFilltoBorderは、PHP画像処理の領域の色を埋めるための重要なツールであり、特に境界で充填を制限する必要があるシーンに特に適しています。開始点と境界色を合理的に設定することにより、複雑な画像領域の正確な充填を実現できます。
画像処理機能については、PHP公式マニュアル: https://gitbox.net/manual/en/function.imagefilltoborder.phpを参照してください。