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

PHP imagecolormatch() 함수 사용법 – 팔레트 이미지 색상 매칭하기

PHP의 imagecolormatch() 함수는 트루컬러(truecolor) 이미지의 실제 색상에 최대한 가깝도록 팔레트 버전 이미지의 색상을 조정해 주는 GD 라이브러리 함수입니다. 즉, 색상 수가 제한된 팔레트 이미지가 원본 트루컬러 이미지와 시각적으로 유사한 결과를 내도록 색상을 보정하는 역할을 합니다.

문법(Syntax)

bool imagecolormatch ( img1, img2 )

매개변수(Parameters)

  • img1: imagecreatetruecolor() 함수를 사용해 생성한 트루컬러 이미지 리소스입니다.

  • img2: 팔레트 이미지를 가리키는 링크 리소스입니다. 이 이미지는 반드시 img1과 동일한 크기여야 합니다.

반환값(Return)

imagecolormatch() 함수는 색상 매칭에 성공하면 TRUE를, 실패하면 FALSE를 반환합니다.

예제 1

다음은 imagecolormatch() 함수의 기본적인 사용 예제입니다.

<?php
   $img1 = imagecreatefrompng('https://www.tutorialspoint.com/images/Swift.png');
   $img2 = imagecreate(imagesx($img1), imagesy($img1));
   $color = Array();
   $color[] = imagecolorallocate($img2, 110, 40, 180);
   $color[] = imagecolorallocate($img2, 90, 10, 90);
   $color[] = imagecolorallocate($img2, 66, 170, 110);
   $color[] = imagecolorallocate($img2, 130, 90, 70);
   echo imagecolormatch($img1, $img2);
   imagedestroy($img1);
   imagedestroy($img2);
?>

출력 결과

1

출력으로 1(TRUE)이 반환되었으므로, 두 이미지 간의 색상 매칭이 성공적으로 수행되었음을 의미합니다.

예제 2

다른 이미지를 사용한 또 다른 예제입니다.

<?php
   $img1 = imagecreatefrompng('https://www.tutorialspoint.com/images/tp-logo-diamond.png');
   $img2 = imagecreate(imagesx($img1), imagesy($img1));
   $color = Array();
   $color[] = imagecolorallocate($img2, 10, 1, 20);
   $color[] = imagecolorallocate($img2, 40, 30, 10);
   $color[] = imagecolorallocate($img2, 15, 100, 50);
   $color[] = imagecolorallocate($img2, 70, 20, 30);
   echo imagecolormatch($img1, $img2);
   imagedestroy($img1);
   imagedestroy($img2);
?>

출력 결과

1

이 예제에서도 1(TRUE)이 출력되어 색상 매칭이 정상적으로 처리되었습니다.

정리

imagecolormatch() 함수는 PNG 등의 트루컬러 이미지를 GIF처럼 색상 수가 제한된 팔레트 형식으로 변환할 때, 색상 손실을 최소화하고 원본과 비슷한 화질을 유지하는 데 유용하게 활용됩니다. 단, 두 이미지의 크기가 반드시 같아야 하며, 작업이 끝난 후에는 imagedestroy()로 메모리를 해제하는 것이 좋습니다.