ImageFilltoBorder()の関数は、指定された境界色に遭遇するまで、画像の特定のポイントで埋めることです。これは、ペイントバケットツールの動作に似ています。
関数プロトタイプ:
bool imagefilltoborder(GdImage $image, int $x, int $y, int $border_color, int $color)
$ xと$ yは、出発点座標です。
$ border_colorは、塗りつぶしの境界色です。
$色は塗りつぶしの色です。
この関数の特性は、「境界トリガーフィル」です。指定された座標から始まり、境界色に属していないすべてのピクセルを、境界に遭遇するまで充填色で置き換えます。
ImageFilledRectangle()は、満たされた長方形の図を描画するために使用されます。この関数は、幾何学的な図の描画により多くなります。
関数プロトタイプ:
bool imagefilledrectangle(GdImage $image, int $x1, int $y1, int $x2, int $y2, int $color)
$ x1、$ y1は左上隅の座標です。
$ x2、$ y2は右下隅の座標です。
$色は塗りつぶしの色です。
この関数は、指定された長方形領域のすべてのピクセルを、境界色を考慮せずに指定された色で直接満たし、画像コンテンツのコンテキストに依存しません。
関数 | ImageFilltoBorder | ImageFilledRectangle |
---|---|---|
出発点 | 出発点が必要です | 座標領域を指定します |
充填条件 | 境界線の色に遭遇したときに停止します | 座標のみで埋めます |
柔軟性 | 高く、不規則なグラフィックに使用できます | 低く、通常の長方形に適しています |
パフォーマンス | 比較的遅い(再帰検索) | 高効率 |
アプリケーションシナリオ | 境界充填エリアの「ペイントバケット」ツールに似ています | 図面や生成チャートなどの明確な構造を持つシーン |
例を挙げてください:
ユーザーが任意の領域をクリックして色を入力する必要があるインタラクティブマップを作成しているとします。その後、 ImageFilltoBorder()がクリック位置と境界色を渡すだけで渡す必要があるため、より適切な選択肢です。
$image = imagecreatefrompng("https://gitbox.net/images/map.png");
$fill_color = imagecolorallocate($image, 255, 0, 0);
$border_color = imagecolorallocate($image, 0, 0, 0);
imagefilltoborder($image, $x, $y, $border_color, $fill_color);
ただし、バーチャートの列など、チャートに長方形のバーを描きたい場合は、 ImageFilledRectangle()はよりシンプルで簡単な選択です。
$image = imagecreatetruecolor(200, 100);
$color = imagecolorallocate($image, 0, 128, 255);
imagefilledrectangle($image, 20, 20, 80, 80, $color);
この質問には絶対的な答えはありませんが、特定のニーズに依存します。
ポイントから不規則な領域を埋める必要があります(クリック後にアウトライン内の領域を埋めるなど) : imagefilltoborder()を選択します。
通常の幾何学的な形状(チャート要素、背景ブロックなど)をすばやく描く必要があります: ImageFilledRectangle()を使用する方が適切です。
パフォーマンスの問題とフィラーグラフの形状が確実であることを心配している場合は、 ImageFilledRectangle()が推奨されます。それはより速く実行され、予期しない境界検出の問題はありません。