PHP의 imagecolorresolve() 함수란?
PHP의 imagecolorresolve() 함수는 이미지 팔레트에서 지정된 색상의 인덱스를 찾아 반환합니다. 만약 해당 색상이 이미지에 존재하지 않는 경우에는, 가장 근접한 대체 색상의 인덱스를 대신 반환합니다. 이 함수는 주로 GIF처럼 제한된 색상 팔레트를 사용하는 이미지에서 특정 색상을 다룰 때 유용합니다.
문법 (Syntax)
imagecolorresolve(img, red, green, blue)
매개변수 (Parameters)
img: imagecreatetruecolor(), imagecreatefromgif() 등의 함수로 생성한 이미지 리소스입니다.
red: 빨간색(Red) 구성 요소의 값으로, 0부터 255 사이의 정수를 사용합니다.
green: 초록색(Green) 구성 요소의 값으로, 0부터 255 사이의 정수를 사용합니다.
blue: 파란색(Blue) 구성 요소의 값으로, 0부터 255 사이의 정수를 사용합니다.
반환값 (Return Value)
imagecolorresolve() 함수는 찾은 색상 또는 가장 유사한 대체 색상의 인덱스(index)를 정수 형태로 반환합니다.
예제 (Example)
다음은 imagecolorresolve() 함수를 활용하여 GIF 이미지에서 여러 RGB 색상의 인덱스를 조회하는 예제입니다.
<?php
$img = imagecreatefromgif('https://www.tutorialspoint.com/images/html.gif');
$colors = array();
$colors[] = imagecolorresolve($img, 120, 0, 190);
$colors[] = imagecolorresolve($img, 110, 0, 140);
$colors[] = imagecolorresolve($img, 120, 190, 0);
print_r($colors);
imagedestroy($img);
?>
실행 결과 (Output)
위 예제를 실행하면 다음과 같은 결과가 출력됩니다. 각 배열 요소는 해당 RGB 조합에 대응하는 색상 인덱스를 나타냅니다.
Array ( [0] => 128 [1] => 129 [2] => 130 )
참고 사항
RGB 값의 범위는 각각 0~255이며, 범위를 벗어난 값은 자동으로 조정됩니다.
색상 사용이 끝난 후에는 imagedestroy() 함수를 호출하여 메모리를 해제하는 것이 좋습니다.
유사한 기능을 하는 함수로는 정확히 일치하는 색상만 찾는 imagecolorexact(), 항상 가장 가까운 색상을 찾는 imagecolorclosest() 등이 있습니다.