現在の位置: ホーム> 最新記事一覧> ImageFilltoborderとImageFilledRectangleの違いの分析

ImageFilltoborderとImageFilledRectangleの違いの分析

gitbox 2025-05-29

1。関数の概要

1。ImageFilltoBorder()

ImageFilltoBorder()の関数は、指定された境界色に遭遇するまで、画像の特定のポイントで埋めることです。これは、ペイントバケットツールの動作に似ています。

関数プロトタイプ:

 bool imagefilltoborder(GdImage $image, int $x, int $y, int $border_color, int $color)
  • $ x$ yは、出発点座標です。

  • $ border_colorは、塗りつぶしの境界色です。

  • $色は塗りつぶしの色です。

この関数の特性は、「境界トリガーフィル」です。指定された座標から始まり、境界色に属していないすべてのピクセルを、境界に遭遇するまで充填色で置き換えます。

2。ImageFilledRectangle()

ImageFilledRectangle()は、満たされた長方形の図を描画するために使用されます。この関数は、幾何学的な図の描画により多くなります。

関数プロトタイプ:

 bool imagefilledrectangle(GdImage $image, int $x1, int $y1, int $x2, int $y2, int $color)
  • $ x1、$ y1は左上隅の座標です。

  • $ x2、$ y2は右下隅の座標です。

  • $色は塗りつぶしの色です。

この関数は、指定された長方形領域のすべてのピクセルを、境界色を考慮せずに指定された色で直接満たし、画像コンテンツのコンテキストに依存しません。


2。シナリオ比較を使用します

関数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);

3.グラフィックを入力するのに適しているのはどれですか?

この質問には絶対的な答えはありませんが、特定のニーズに依存します。

  • ポイントから不規則な領域を埋める必要があります(クリック後にアウトライン内の領域を埋めるなど)imagefilltoborder()を選択します。

  • 通常の幾何学的な形状(チャート要素、背景ブロックなど)をすばやく描く必要がありますImageFilledRectangle()を使用する方が適切です。

パフォーマンスの問題とフィラーグラフの形状が確実であることを心配している場合は、 ImageFilledRectangle()が推奨されます。それはより速く実行され、予期しない境界検出の問題はありません。