PHP의 imagefill() 함수는 이미지의 특정 영역을 지정한 색상으로 채우는 데 사용되는 GD 라이브러리 함수입니다. 시작 좌표를 기준으로 인접한 픽셀들의 색이 같은 범위까지 채워 나가는 방식(플러드 필, flood fill)으로 동작하기 때문에, 배경 전체를 한 가지 색으로 칠하거나 특정 영역만 선택적으로 채울 때 유용하게 활용됩니다.
문법
imagefill(img, x, y, color)
매개변수
img
imagecreatetruecolor() 함수로 생성한 빈 이미지 리소스입니다.x
채우기를 시작할 지점의 x 좌표입니다.y
채우기를 시작할 지점의 y 좌표입니다.color
채우기에 사용할 색상입니다. 일반적으로 imagecolorallocate() 함수로 생성한 색상 값을 사용합니다.
반환 값
imagefill() 함수는 채우기에 성공하면 TRUE를, 실패하면 FALSE를 반환합니다.
예제
다음은 imagefill() 함수를 사용해 400x400 크기의 이미지 전체를 연한 초록색으로 채우는 예제입니다.
<?php
$img = imagecreatetruecolor(400, 400);
$color = imagecolorallocate($img, 190, 255, 120);
imagefill($img, 0, 0, $color);
header('Content-type: image/png');
imagepng($img);
imagedestroy($img);
?>
코드 흐름 살펴보기:
- imagecreatetruecolor(400, 400)으로 가로·세로 400픽셀 크기의 빈 이미지를 생성합니다.
- imagecolorallocate()로 RGB 값 (190, 255, 120)에 해당하는 연두색을 정의합니다.
- imagefill()을 호출해 좌표 (0, 0)에서 시작하여 이미지 전체를 해당 색으로 채웁니다.
- header()로 콘텐츠 타입을 PNG로 설정한 뒤 imagepng()로 이미지를 브라우저에 출력합니다.
- imagedestroy()로 서버 메모리에 남아 있는 이미지 리소스를 해제합니다.
출력 결과
위 코드를 실행하면 다음과 같이 연한 초록색으로 채워진 400x400 크기의 PNG 이미지가 화면에 출력됩니다.
