imagefilltoborder() là hàm tích hợp sẵn trong PHP dùng để thực hiện điền màu (flood fill) với một màu cụ thể, đường viền được xác định bởi màu viền. Điểm bắt đầu điền là (x,y) hoặc góc trên bên trái là (0, 0) và vùng sẽ được điền bằng màu chỉ định.
Cú pháp
bool imagefilltoborder(resource $image, int $x, int $y, int $border, int $color)
Tham số
Hàm imagefilltoborder() nhận năm tham số: $image, $x, $y, $border, $color.
$image - Tài nguyên hình ảnh.
$x - Tọa độ x của điểm bắt đầu.
$y - Tọa độ y của điểm bắt đầu.
$border - Màu viền.
$color - Màu điền.
Giá trị trả về
Trả về True khi thành công, False khi thất bại.
Ví dụ 1
<?php
// Tải hình ảnh GIF từ thư mục cục bộ
$img = imagecreatefromgif('C:\xampp\htdocs\Images\img39.gif');
// Tạo màu cho hình ảnh
$borderColor = imagecolorallocate($img, 0, 200, 0);
$fillColor = imagecolorallocate($img, 122, 122, 122);
// Điền màu lên đến đường viền
imagefilltoborder($img, 0, 0, $borderColor, $fillColor);
// Hiển thị hình ảnh đầu ra
header('Content-type: image/gif');
imagepng($img);
?>
Kết quả
Hình ảnh GIF trước khi sử dụng hàm imagefilltoborder() trong PHP.

Hình ảnh GIF sau khi sử dụng hàm imagefilltoborder() trong PHP.

Ví dụ 2: Điền màu cho elip
<?php
// Tạo hình ảnh, đặt nền màu xám
$img = imagecreatetruecolor(700, 500);
imagefilledrectangle($img, 0, 0, 500, 500, imagecolorallocate($img, 122, 122, 122));
// Vẽ elip với viền đen
imageellipse($img, 300, 300, 300, 300, imagecolorallocate($img, 0, 0, 0));
// Đặt màu viền và điền bằng màu xanh dương
$border = imagecolorallocate($img, 0, 0, 0);
$fill = imagecolorallocate($img, 0, 0, 255);
// Điền vùng chọn
imagefilltoborder($img, 300, 300, $border, $fill);
// Hiển thị hình ảnh và giải phóng bộ nhớ
header('Content-type: image/gif');
imagepng($img);
imagedestroy($img);
?>
Kết quả
