PHP의 imagecolorexact() 함수는 이미지 팔레트에서 지정한 색상의 인덱스를 반환하는 GD 라이브러리 함수입니다. 이 함수는 정확히 일치하는 색상이 팔레트에 존재할 때만 해당 색상의 인덱스를 찾아주며, 색상이 존재하지 않을 경우 -1을 반환합니다.
문법
imagecolorexact ( $img, $red, $green, $blue )
매개변수
img: imagecreatetruecolor() 또는 imagecreatefrompng() 등으로 생성된 이미지 리소스입니다.
red: 빨간색(Red) 색상 구성 요소입니다. 0~255 사이의 값을 사용합니다.
green: 초록색(Green) 색상 구성 요소입니다. 0~255 사이의 값을 사용합니다.
blue: 파란색(Blue) 색상 구성 요소입니다. 0~255 사이의 값을 사용합니다.
반환 값
imagecolorexact() 함수는 지정한 색상이 팔레트에 존재하면 해당 색상의 인덱스를 반환하고, 존재하지 않으면 -1을 반환합니다. 참고로 이 함수는 truecolor 이미지가 아닌 팔레트 기반 이미지에서 주로 사용됩니다.
예제
다음은 imagecolorexact() 함수를 사용하여 여러 RGB 색상 조합의 인덱스를 조회하는 예제입니다:
<?php
$img = imagecreatefrompng('https://www.tutorialspoint.com/assets/videos/courses/67/images/course_67_image.png');
$colors = Array();
$colors[] = imagecolorexact($img, 30, 90, 50);
$colors[] = imagecolorexact($img, 80, 120, 100);
$colors[] = imagecolorexact($img, 25, 80, 50);
print_r($colors);
imagedestroy($img);
?>실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다:
Array ( [0] => 1989170 [1] => 5273700 [2] => 1658930 )
출력 결과에서 각 배열 요소는 해당 RGB 값과 일치하는 색상의 팔레트 인덱스를 나타냅니다. 만약 지정한 색상이 이미지 팔레트에 없다면 -1이 출력되므로, 실제 개발 시에는 반환 값을 확인하여 색상 존재 여부를 처리하는 것이 좋습니다. 마지막에는 imagedestroy() 함수를 호출하여 메모리를 해제하는 습관을 들이는 것이 바람직합니다.