PHP의 imagecolorset() 함수는 팔레트 이미지에서 지정한 색상 인덱스에 해당하는 색을 새로운 색상으로 교체하는 GD 라이브러리 함수입니다. 이 함수를 활용하면 팔레트 기반 이미지에서 특정 색상 영역 전체를 한 번에 다른 색으로 바꾸는, 마치 영역 채우기(flood-fill)와 같은 시각적 효과를 간단하게 구현할 수 있습니다.
문법(Syntax)
imagecolorset ( img, index, red, green, blue, alpha )
매개변수(Parameters)
img: 작업 대상이 되는 이미지 리소스입니다. 주로 imagecreate() 함수로 생성한 팔레트 이미지를 사용합니다.
index: 팔레트 이미지 내에서 색상을 변경할 인덱스 번호입니다.
red: 빨간(Red) 색상 성분 값입니다. (0 ~ 255)
green: 초록(Green) 색상 성분 값입니다. (0 ~ 255)
blue: 파란(Blue) 색상 성분 값입니다. (0 ~ 255)
alpha: 이미지의 투명도(transparency) 값입니다.
반환값(Return)
imagecolorset() 함수는 별도의 값을 반환하지 않습니다. 대신 지정된 팔레트 인덱스의 색상 정보를 해당 위치에서 직접 수정합니다.
예제(Example)
다음은 imagecolorat() 함수로 특정 좌표의 색상 인덱스를 가져온 후, imagecolorset() 함수를 이용해 해당 색상을 청록색 계열(RGB 30, 110, 150)로 변경하는 예제입니다.
<?php
$img = imagecreate(550, 400);
imagecolorallocate($img, 0, 0, 0);
$bgcolor = imagecolorat($img, 70, 85);
imagecolorset($img, $bgcolor, 30, 110, 150);
header('Content-Type: image/png');
imagepng($img);
imagedestroy($img);
?>
실행 결과(Output)
위 코드를 실행하면 550×400 크기의 이미지가 생성되며, 처음 할당된 검은색 배경이 RGB(30, 110, 150) 값의 청록색 계열 색상으로 변경되어 PNG 형식으로 출력됩니다.
