현재 위치: > 최신 기사 목록> imagecolorclosest와 imagecreatetrecolor 기능을 함께 사용하는 방법은 무엇입니까? 특정 예제 분석

imagecolorclosest와 imagecreatetrecolor 기능을 함께 사용하는 방법은 무엇입니까? 특정 예제 분석

gitbox 2025-06-22

1. imageCreatetRueColor () 함수 구문 분석

imageCreatetRueColor () 함수는 진정한 색상 이미지를 만드는 데 사용됩니다. 폭과 높이가 포함 된 이미지 리소스를 반환하며, 색상 충전, 그리기 그래픽 또는 출력 이미지와 같은 후속 이미지 작업에 사용할 수 있습니다.

함수 구문 :

 <span><span>resource </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$width</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$height</span></span><span>);
</span></span>
  • 너비 : 픽셀의 이미지의 너비.

  • $ 높이 : 픽셀로 이미지의 높이.

예:

 <span><span><span class="hljs-comment">// 너비를 만듭니다 200px,높이입니다 100px 진정한 색상 이미지</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span></span>

2. imageColorClosest () 함수 구문 분석

imageColorClosest () 함수는 주어진 RGB 값을 기반으로 팔레트에서 가장 가까운 색상을 찾습니다. 이 함수는 대상 색상에 가장 가까운 팔레트의 색소 인덱스 값을 반환하며, 이는 비 트루 컬러 이미지를 처리하는 데 특히 유용합니다.

함수 구문 :

 <span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagecolorclosest</span></span><span>(resource </span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$red</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$green</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$blue</span></span><span>);
</span></span>
  • $ 이미지 : 이미지 리소스.

  • $ RED, $ GREEN, $ BLUE : 대상 색상의 RGB 값은 0에서 255입니다.

예:

 <span><span><span class="hljs-comment">// 가장 가까이 얻으십시오 RGB(255, 0, 0) 컬러 인덱스(빨간색)</span></span><span>
</span><span><span class="hljs-variable">$colorIndex</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorclosest</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
</span></span>

3. imageCreatetRuecolor ()imageColorClosest ()를 함께 사용하는 방법은 무엇입니까?

진정한 색상 이미지에 사각형을 그리고 이미지 팔레트에서 사각형의 색상이 가장 가까운지 확인해야한다고 가정하십시오.

단계:

  1. imageCreatetRueColor ()를 사용하여 진정한 색상 이미지를 만듭니다.

  2. ImageColorClosest ()를 사용하여 대상 색상에 가장 가까운 팔레트의 색 인덱스를 찾으십시오.

  3. ImageFilledRectangle () 함수를 사용하여 사각형을 이미지에 그리고 가장 가까운 빨간색으로 표시하고 이미지에 사각형을 그립니다.

완료 코드 예 :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// a 400x200 진정한 색상 이미지</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">400</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>);

</span><span><span class="hljs-comment">// 가장 가까이 얻으십시오 RGB(255, 0, 0) 컬러 인덱스</span></span><span>
</span><span><span class="hljs-variable">$redIndex</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorclosest</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);

</span><span><span class="hljs-comment">// 이미지에 사각형을 그립니다,填充为빨간색</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">350</span></span><span>, </span><span><span class="hljs-number">150</span></span><span>, </span><span><span class="hljs-variable">$redIndex</span></span><span>);

</span><span><span class="hljs-comment">// 출력 이미지</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</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-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>

4. 주목할만한 것들

  • imageColorClosest ()는 팔레트 이미지 와 함께 작동합니다. imageCreatetRueColor () 로 만든 이미지가 진정한 색상 이미지 (24 비트 색상) 인 경우 Palette 이미지와 마찬가지로 imageColorClosest ()가 예상대로 작동하지 않을 수 있습니다. 진정한 색상 이미지의 경우 imageColorAllocate () 또는 imageColoralLocatealpha ()를 직접 사용하여 색상을 할당하는 것이 좋습니다.

  • PHP에서, True Color Images ( imageCreatetRuecolor () 로 생성)는 24 비트 색상 (즉, 각 픽셀은 3 바이트로 표시)이며 팔레트 이미지는 색 인덱스를 사용하여 색상을 저장합니다.

5. 요약

imageCreatetRueColor ()imageColorClosest ()를 결합하면 이미지를 팔레트 이미지로 변환 해야하는 경우 이미지 색상을 처리하는 데 더 많은 유연성을 가질 수 있습니다. 그러나 imagecolorallocate ()imagecolorallocatealpha () 는 진정한 컬러 이미지를 다룰 때 더 적합한 선택입니다. 어떤 방법을 사용하든 색상 모델의 역할과 이미지의 기능을 이해하는 것은 이미지 처리의 중요한 기초입니다.