Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP imagecolorexact() 함수 완벽 가이드 – 지정한 색상의 팔레트 인덱스 찾기

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() 함수를 호출하여 메모리를 해제하는 습관을 들이는 것이 바람직합니다.