현재 위치: > 최신 기사 목록> imageColorResolve ()와 imageColorAllocate ()의 차이와 선택

imageColorResolve ()와 imageColorAllocate ()의 차이와 선택

M66 2025-05-30

PHP의 GD 라이브러리를 사용하여 이미지를 처리 ​​할 때 imageColorResolve ()imageColorAllocate () 는 자주 발생하는 기능입니다. 그것들은 모두 색상과 관련이 있지만 실제 용도와 효과는 다양합니다. 이들 사이의 차이를 이해하면 개발 프로세스 중에 더 적절한 방법을 선택하고 이미지 처리의 효율성과 품질을 향상시키는 데 도움이됩니다.

1. imageColorAllother ()

ImageColorAllother ()는 이미지에 새 색상을 할당하는 데 사용됩니다. 간단히 말해서 이미지의 팔레트에 색상을 추가하고 색상의 식별자를 반환하는 것입니다.

이미지가 팔레트 기반 (예 : 8 비트 PNG 또는 GIF) 인 경우 새 색상이 할당 될 때마다 팔레트 최대 용량에 도달 할 때까지 (보통 256 색) 내부 팔레트에 레코드가 추가됩니다. 팔레트가 가득 차면 imageColorAllocate ()가 실패하여 False를 반환합니다.

샘플 코드 :

 <?php
$image = imagecreate(100, 100); // a 100x100 빈 사진
$red = imagecolorallocate($image, 255, 0, 0); // 빨간색을 할당하십시오
imagefill($image, 0, 0, $red); // 배경을 빨간색으로 채우십시오
imagepng($image, 'https://m66.net/upload/red.png');
imagedestroy($image);
?>

위의 코드에서는 PHP에 팔레트에 할당되어 해당 색상 ID를 반환 할 새로운 빨간색이 필요하다고 명시 적으로 알려줍니다.

2. imageColorResolve ()

imageColorResolve ()는 주어진 RGB 값에 가장 가까운 기존 색상을 찾는 데 사용됩니다. 존재하면 기존 색상 ID를 반환합니다. 가까이 있지 않고 팔레트를위한 공간이 있으면 새 색상이 할당됩니다.

즉, 기존 색상의 사용 우선 순위를 정하고 새로운 색상의 불필요한 추가를 피하여 제한된 팔레트 리소스를보다 효율적으로 사용할 수 있습니다.

샘플 코드 :

 <?php
$image = imagecreate(100, 100); // a 100x100 빈 사진
$red = imagecolorresolve($image, 254, 1, 1); // 빨간색에 가까운 색상을 찾으십시오
imagefill($image, 0, 0, $red); // 찾은 색상으로 배경을 채우십시오
imagepng($image, 'https://m66.net/upload/resolved_red.png');
imagedestroy($image);
?>

imageColorResolve () 는 정확한 할당이 아니라 지정된 색상 에 가깝게 필요합니다.

3. 선택하는 방법?

imageColorAllocate () 또는 imageColorResolve ()를 선택하면 필요에 따라 다릅니다.

  • 색상 팔레트 성장을 견딜 수있는 확실하고 정확한 색상이 필요한 경우 imageColorAllocate ()를 선택하십시오.

  • 팔레트 자원을 저장하고 가능한 한 기존 색상을 재사용하려면 imageColorResolve ()를 선택하십시오.

일반적으로 이미지의 색상 수가 너무 크지 않다는 것을 알고 있다면 imageColorAllocate ()를 직접 사용할 수 있습니다. 이미지의 색상이 풍부하거나 GIF와 같은 색상 수에 제한이있는 이미지에서 작업하는 경우 먼저 imageColorResolve ()를 사용하는 것이 좋습니다.

4. 간단한 요약

기능적 요점 imageColorAllother () imageColorResolve ()
목적 새 색상을 할당하십시오 기존의 가까운 색상을 사용하고 필요한 경우 할당하십시오
팔레트 압력 큰 (오버플로를 유발할 수 있음) 작은 (가능한 한 재사용 가능)
시나리오를 사용하십시오 정확한 색상 제어 장면 색상 자원을 절약하는 장면

실제 개발 에서이 두 기능의 차이를 마스터하면 이미지 처리 프로그램이 효율적이고 안정적으로 만들 수 있습니다!