PHP에서 이미지 처리는 일반적으로 GD 라이브러리를 사용하여 이미지 생성, 편집 및 저장을위한 일련의 기능을 제공합니다. ImagePalettetotRuecolor 는 GD 라이브러리에서 일반적으로 사용되는 기능으로 팔레트 이미지를 실제 색상 이미지로 변환합니다. 이 기능은 이미지의 색상 공간을 처리하고 이미지 형식을 변환하는 데 매우 유용합니다. 특히 팔레트 이미지 (예 : 8 비트 PNG)를 실제 색상 이미지 (예 : 24 비트 RGB PNG)로 변환 해야하는 경우.
그러나 진정한 색상 이미지로 변환 한 후 이미지를 PNG 형식으로 어떻게 저장합니까? 다음으로 ImagePalettetotRuecolor 함수를 사용한 후 이미지를 PNG 형식으로 저장하는 방법을 단계별로 단계별로 진행합니다.
먼저, 이미 팔레트 이미지 리소스가 있다고 가정 해 봅시다. imageCreatefrommpng 또는 기타 관련 기능을 사용하여 이미지 리소스를 생성 할 수 있습니다. 이 이미지 리소스는 일반적으로 팔레트 이미지이며, 각 픽셀은 RGB 색상을 직접 사용하는 대신 색인 인덱스로 표시됩니다.
<span><span><span class="hljs-variable">$img</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'input_image.png'</span></span><span>);
</span></span>
다음으로 ImagePalettetOtruecolor 함수를 사용하여 팔레트 이미지를 실제 색상 이미지로 변환하십시오. 이렇게하면 이미지의 색 깊이가 팔레트 모드 (일반적으로 8 비트)에서 24 비트 진정한 색상 모드로 변환됩니다.
<span><span><span class="hljs-title function_ invoke__">imagepalettetotruecolor</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>);
</span></span>
현재 원래 팔레트 이미지는 실제 색상 이미지로 변환되어 더 많은 색상 세부 사항을 제공 할 수 있습니다.
진정한 색상 이미지 리소스를 갖추 었으므로 ImagePNG 함수를 사용하여 PNG 형식으로 저장할 수 있습니다. ImagePng 함수는 이미지를 PNG 형식으로 저장하고 투명성 및 기타 PNG 특이 적 기능을 지원합니다.
<span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-string">'output_image.png'</span></span><span>);
</span></span>
이 시점에서 이미지는 output_image.png 파일로 저장되며 이미지는 투명성을 유지하고 고품질 PNG 형식으로 저장됩니다.
다음은 팔레트 이미지를 실제 색상 이미지로 변환하고 PNG 형식으로 저장하는 방법을 보여주는 완전한 예입니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 팔레트 이미지로드</span></span><span>
</span><span><span class="hljs-variable">$img</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'input_image.png'</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">$img</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"이미지를로드 할 수 없습니다!"</span></span><span>);
}
</span><span><span class="hljs-comment">// 팔레트 이미지를 실제 색상 이미지로 변환하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagepalettetotruecolor</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>);
</span><span><span class="hljs-comment">// 이미지를 다음과 같이 저장하십시오 PNG 체재</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-string">'output_image.png'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이미지는 성공적으로 저장되었습니다 output_image.png"</span></span><span>;
} </span><span><span class="hljs-keyword">else</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-comment">// 이미지 리소스 릴리스</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
ImagePalettetotRuecolor 함수는 팔레트 이미지에만 적용될 수 있으며 변환 된 이미지는 24 비트 RGB 이미지입니다.
이미지를 제 시간에 저장하지 않거나 이미지를 변환 한 후 이미지 리소스를 파괴하지 않으면 메모리 누출이 발생할 수 있습니다.
ImagePNG를 사용하는 경우 선택적 품질 매개 변수 (0과 9)를 전달하여 이미지의 압축 수준을 조정할 수도 있습니다. 예를 들어, imagepng ($ img, 'output_image.png', 9); 가장 높은 압축을 의미합니다.
ImagePalettetotruecolor 함수를 사용하면 팔레트 이미지를 진정한 색상 이미지로 변환하여 이미지의 색상 성능을 더 풍부하고 섬세하게 만듭니다. 변환이 완료되면 ImagePNG 함수를 사용하여 이미지를 PNG 형식으로 쉽게 저장하여 이미지 품질과 투명성이 보존 될 수 있습니다.