Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Điền màu lên đến đường viền trong PHP bằng hàm imagefilltoborder() (GD)

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.

Điền màu lên đến đường viền trong PHP bằng hàm imagefilltoborder() (GD)

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

Điền màu lên đến đường viền trong PHP bằng hàm imagefilltoborder() (GD)

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ả

Điền màu lên đến đường viền trong PHP bằng hàm imagefilltoborder() (GD)