當前位置: 首頁> 最新文章列表> PHP 中imagefilltoborder 函數怎麼用?圖像區域填充案例詳解

PHP 中imagefilltoborder 函數怎麼用?圖像區域填充案例詳解

gitbox 2025-06-10

在PHP 圖像處理函數庫中, imagefilltoborder是一個非常實用的函數,用於在指定區域內進行顏色填充,直到遇到邊界顏色為止。這個功能在圖像編輯、生成動態圖形時非常常見,尤其是在需要對複雜區域進行顏色填充時。

本文將通過具體案例,詳細介紹imagefilltoborder函數的使用方法及其工作原理,幫助你快速掌握這一圖像處理技巧。


1. imagefilltoborder函數簡介

imagefilltoborder函數用於從指定起點像素開始填充顏色,填充範圍直到遇到某個邊界顏色停止。其函數定義如下:

 bool imagefilltoborder ( resource $image , int $x , int $y , int $border , int $color )
  • $image :圖像資源句柄。

  • $x , $y :起始填充點的坐標。

  • $border :邊界顏色的索引值,填充將不會越過這個顏色邊界。

  • $color :用於填充的顏色索引值。

如果填充成功,返回true ,否則返回false


2. 使用場景說明

假設你有一張帶有不同顏色區域的圖像,想對某個區域進行顏色填充,但不希望顏色越界。 imagefilltoborder就可以從你指定的點開始填充,直到碰到預設的邊界顏色為止。


3. 具體案例:圖像區域填充示例

下面示例演示如何創建一個帶有黑色邊框的矩形,並使用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 格式圖像。

運行這段代碼後,可以看到一個紅色填充的矩形區域,邊界是黑色,填充色沒有超出邊界。


4. 注意事項

  • imagefilltoborder會一直填充直到遇到邊界顏色,因此邊界顏色必須準確,否則可能填充超出預期範圍。

  • 邊界顏色與填充顏色不能相同,否則填充無效。

  • 起始點坐標要位於非邊界的區域內,否則不會有填充效果。


5. 總結

imagefilltoborder是PHP 圖像處理中進行區域顏色填充的重要工具,特別適用於需要按照邊界限制填充的場景。通過合理設置起點和邊界顏色,可以實現複雜圖像區域的精確填充。

更多圖像處理功能可以參考PHP 官方手冊: https://gitbox.net/manual/en/function.imagefilltoborder.php