PHP 이미지 처리 중에 imagecolorexact () 및 imagecolorresolve () 는 색상 처리에 일반적으로 사용되는 두 가지 기능입니다. 실제 애플리케이션에서 성능 및 적용 가능한 시나리오는 약간 다릅니다. 이 기사는 그 차이점을 논의하고 PHP 이미지 처리에 사용하기에 더 적합한 것을 분석합니다.
imageColorexact () 함수는 이미지의 색 인덱스 테이블에서 지정된 색상과 정확히 일치하는 색 인덱스를 찾는 데 사용됩니다. 정확히 일치하는 색상이 발견되면 해당 색상의 인덱스를 반환합니다. 정확히 일치하는 색상이 없으면 -1을 반환합니다.
문법:
int imagecolorexact ( resource $image, int $red, int $green, int $blue )
$ 이미지 : 이미지 리소스.
$ 빨간색 , $ Green , $ Blue : 색상의 RGB 값.
예:
$image = imagecreate(100, 100);
$red = imagecolorexact($image, 255, 0, 0);
ImageColorResolve () 함수는 지정된 RGB 값을 기반으로 이미지의 색 인덱스를 찾는 데 사용되며 가장 가까운 일치하는 색 인덱스를 반환합니다. 일치하는 색상이 발견되면 해당 색상의 인덱스를 반환하고 그렇지 않으면 새 색상을 생성하고 해당 색상의 색인을 반환합니다.
문법:
int imagecolorresolve ( resource $image, int &$red, int &$green, int &$blue )
$ 이미지 : 이미지 리소스.
$ red , $ green , $ blue : 색상의 RGB 값은 호출 될 때 참조되고 이미지의 실제 일치하는 RGB 값으로 업데이트됩니다.
예:
$image = imagecreate(100, 100);
imagecolorresolve($image, 255, 0, 0);
두 기능 모두 색상 일치와 관련이 있지만 성능이 다르게 성능을 발휘합니다.
ImageColorexact ()는 이미지의 색상 테이블을 직접 확인하여 지정된 색상과 정확히 일치하는 항목이 있는지 확인합니다. 정확히 일치하는 색상이 발견되면 즉시 색상의 인덱스를 반환합니다. 이는 더 효율적입니다.
ImageColorResolve () 의 작동 메커니즘은 약간 더 복잡합니다. 색상 색인 테이블을 확인할뿐만 아니라 정확히 일치하는 색상이 발견되지 않을 때 새로운 색상을 만듭니다. 즉, 추가 컴퓨팅 및 메모리 작업이 포함될 수 있으며, 특히 이미지가 더 큰 경우 imagecolorexact () 보다 성능이 약간 악화됩니다.
따라서, imagecolorresolve ()는 처리 할 때, 특히 일치하는 색상이 발견되지 않을 때 새로운 색상을 만들어야하는 경우 imagecolorrexact () 보다 느리게 될 수 있습니다.
성능 차이 및 기능 요구 사항에 따라 다른 시나리오 에서이 두 기능을 사용할 수 있습니다.
색상과 정확히 일치 해야하는 경우 : imagecolorexact ()를 사용하여 정확한 색상 색인을 빠르게 찾을 수 있으므로 정확한 색상 일치 장면에 적합합니다.
일치하는 데 완전한 정확도가 필요하지 않은 경우 : imageColorResolve ()를 사용하여 가장 가까운 색상을 찾을뿐만 아니라 정확한 일치가 없을 때 새로운 색상을 생성하기 때문에 색상 공차가 높은 장면에 적합합니다.
주로 성능에 초점을 맞추고 정확한 색상 일치가 필요한 경우 imagecolorexact () 가 더 적합합니다. imageColorResolve () 는 색상 일치 공차가 높을 때 더 유연하지만 새로운 색상을 만드는데도 마음에 들지 않습니다.