현재 위치: > 최신 기사 목록> PNG 이미지의 색상을 함께 얻기 위해 imagecolorstotal 및 imagecreatefrommpng 기능을 사용하는 방법은 무엇입니까?

PNG 이미지의 색상을 함께 얻기 위해 imagecolorstotal 및 imagecreatefrommpng 기능을 사용하는 방법은 무엇입니까?

M66 2025-07-18

1. 소개

이미지 처리에서 이미지에 포함 된 색상 수를 이해하는 것이 일반적인 요구 사항입니다. PNG 이미지의 경우 PNG 형식이 투명성 및 여러 컬러 모델을 지원하기 때문에이 프로세스는 조금 더 복잡합니다. 다행히도 PHP는이 정보를 쉽게 얻을 수 있도록 내장 기능을 제공합니다.

이 기사는 PNG 이미지에서 총 색상 수를 얻기 위해 imagecolorstotalimagecreatefrommpng 함수를 사용하는 방법을 자세히 설명합니다.

2. 주요 기능 소개

2.1 imageCreatefrommpng 함수

imageCreateFrommpng 함수는 PNG 파일에서 이미지 리소스를 만드는 데 사용됩니다. 그 기능은 PNG 이미지를 읽고 PHP가 처리 할 수있는 이미지 리소스로 변환하는 것입니다. 그 후이 이미지 리소스에서 다양한 작업을 수행 할 수 있습니다.

기능 프로토 타입 :

 <span><span>resource </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span>);
</span></span>

매개 변수 :

  • $ filename : PNG 이미지 파일의 경로.

반품 값 :

  • 성공하면 이미지 리소스를 반환하십시오. 실패하면 거짓을 반환합니다.

2.2 imagecolorstotal 기능

imagecolorstotal 함수는 이미지에 사용 된 다른 색상의 총 수를 반환합니다. 색상 수를 계산하기 위해 이미지의 색상 팔레트를 기반으로하므로 색인 패턴이있는 이미지에 대해 작동합니다.

기능 프로토 타입 :

 <span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagecolorstotal</span></span><span>(resource </span><span><span class="hljs-variable">$image</span></span><span>);
</span></span>

매개 변수 :

  • $ 이미지 : 이미지 리소스.

반품 값 :

  • 이미지에 사용 된 총 색상 수를 반환합니다. 이미지가 직접 색상 모드 (예 : RGB)를 사용하는 경우이 값은 일반적으로 0입니다.

3.이 두 기능을 사용하여 PNG 이미지 색상 수를 얻으십시오.

이 두 기능을 결합하여 PNG 이미지에서 쉽게 색상 수를 얻을 수 있습니다. 특정 단계는 다음과 같습니다.

  1. imageCreateFrommpng를 사용하여 PNG 이미지 파일을 열고 이미지 리소스를 얻으십시오.

  2. ImageColorstotal 기능을 사용하여 이미지에 사용 된 총 색상 수를 얻으십시오.

  3. 출력 결과.

4. 샘플 코드

다음은이 두 기능을 사용하여 PNG 이미지에서 색상 수를 얻는 방법을 보여주는 완전한 샘플 코드입니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 설정 PNG 이미지 파일 경로</span></span><span>
</span><span><span class="hljs-variable">$imagePath</span></span><span> = </span><span><span class="hljs-string">'example.png'</span></span><span>;

</span><span><span class="hljs-comment">// 시도해보십시오 PNG 파일 생성 이미지 리소스</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-variable">$imagePath</span></span><span>);

</span><span><span class="hljs-comment">// 이미지 리소스가 성공적으로 생성되었는지 확인하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$image</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이미지 리소스를 만들 수 없습니다。파일 경로가 올바른지 확인하십시오。"</span></span><span>;
    </span><span><span class="hljs-keyword">exit</span></span><span>;
}

</span><span><span class="hljs-comment">// 이미지에 사용 된 색상 수를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$colorCount</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorstotal</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-comment">// 출력 색상 번호</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"해야 한다 PNG 이미지에 포함 된 총 색상 수는: "</span></span><span> . </span><span><span class="hljs-variable">$colorCount</span></span><span>;

</span><span><span class="hljs-comment">// 이미지 리소스 릴리스</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

5. 코드 파싱

  1. 이미지 리소스 생성 : imageCreateFrommpng 함수를 통해 지정된 PNG 파일을 $ 이미지 변수에로드하십시오. 이미지 파일 경로가 올바르지 않거나 파일을 읽을 수없는 경우 함수가 False를 반환하면 이에 따라 확인하고 처리해야합니다.

  2. 색상 수를 얻으십시오 : ImageColorstotal 함수는 이미지에 사용 된 다양한 색상의 수를 반환합니다. PNG 이미지, 특히 인덱스 된 색상 모드를 사용하는 PNG의 경우 리턴 된 색상 수는 0이 아닙니다. 이미지가 직접 색상 모드 (예 : RGB)를 사용하는 경우 함수는 0을 반환합니다.

  3. 무료 리소스 : 마지막으로, ImageStroy 함수를 사용하여 메모리 누출을 피하기 위해 이미지 리소스를 확보하십시오.

6. 주목할만한 것들

  • 이미지가 팔레트 (즉, 색인화 된 색상 모드)를 사용하는 경우 imagecolorstotal은 실제 색상 수를 반환합니다. 그러나 이미지가 직접 색상 모드 (RGB)를 사용하는 경우이 함수는 0을 반환하므로 이미지를 사용할 때 이미지의 색상 모드에주의를 기울여야합니다.

  • 처리중인 이미지 파일이 크거나 이와 같은 빈번한 작업이 필요한 경우 코드에 적절한 예외 처리 및 오류 확인을 추가하는 것이 좋습니다.

7. 요약

PHP는 imageCreatefrommpngimageColorstotal 함수를 사용하여 PNG 이미지의 총 색상을 쉽고 효율적으로 제공하는 방법을 제공합니다. 이것은 이미지 분석, 최적화 및 처리에 매우 유용합니다. 이 기사 가이 두 기능을 더 잘 이해하고 프로젝트에 적용하는 데 도움이되기를 바랍니다.

  • 관련 태그:

    PNG