색상 수 설정은 핵심 매개 변수로 변환 된 이미지가 유지할 수있는 색상 수를 직접 결정합니다. 그 영향은 주로 다음 측면에 반영됩니다.
색상 수가 너무 작게 설정되면 (예 : 16 또는 32) 이미지의 많은 색상이 병합되거나 근사화되며 특히 사진 기반 이미지의 경우 세부 사항이 쉽게 왜곡됩니다. 이 왜곡은 일반적으로 다음과 같이 나타납니다.
색상 차단 : 원래 부드러운 색상 전환이 갑작스러워집니다.
색상 드리프트 : 색상은 원래 이미지와는 거리가 멀고 시각적 효과가 크게 줄어 듭니다.
색상 수가 128 또는 256으로 증가하면 이미지는 기본적으로 대부분의 색상 레벨을 유지할 수 있으며 육안으로 관찰은 원래 이미지와 거의 동일합니다. 그러나 이것은 또한 이미지 파일 크기가 원래 truecolor 이미지에 가깝고 압축 이점이 줄어 듭니다.
이미지 품질과 성능 사이의 최상의 균형을 찾으려면 이미지 컨텐츠 및 사용 시나리오와 함께 판단해야합니다. 다음은 몇 가지 실질적인 제안입니다.
아이콘 및 그래픽 인터페이스 (UI) 요소 : 16 ~ 64 색으로 설정할 수 있습니다. 이 유형의 이미지 자체의 색상이 적기 때문에 변환 후 손실은 작습니다.
사진, 그라디언트 배경 이미지 : 128 또는 256 색으로 설정하는 것이 좋습니다. 이것은 이미지 세부 사항을 더 잘 보존합니다.
$ dither = true를 활성화하면 색상 지터 알고리즘이 소개되어 소량의 색상으로 더 풍부한 시각적 계층을 시뮬레이션합니다. 특히 색상 수가 작을 때 컬러 블록과 윤곽 자그를 크게 줄일 수 있습니다.
$image = imagecreatefromjpeg('https://gitbox.net/images/sample.jpg');
imagetruecolortopalette($image, true, 64);
이 코드는 이미지를 64 가지 색상으로 제한하고 지터를 켭니다. 이는 이미지 크기가 필요하지만 특정 품질을 유지하려는 장면에 적합 할 수 있습니다.
복잡한 애플리케이션의 경우 이미지 색상 분포를 동적으로 분석하여 색상 수를 결정할 수 있습니다. 예를 들어, 그림에서 색 히스토그램 분석을 수행하고 색상 다양성을 결정하며 이에 따라 $ ncolors 값을 조정하십시오.
오해 : 색상이 적을수록 <br> 과도한 압축이 심각한 왜곡을 유발할 수 있기 때문에 모든 이미지가 색상, 특히 미세한 세부 사항이 필요한 이미지에 적합한 것은 아닙니다.
오해 : 지터를 켜는 것이 항상 더 좋습니다 <br> 지터는 시각 효과를 향상시킬 수 있지만 일부 상황에서 이미지의 가독성에 영향을 미치는 추가 노이즈를 소개 할 수 있습니다. 요구 사항에 따라 활성화할지 여부를 결정하십시오.
제안 : 파일 형식 최적화와 협력 <br> PNG-8 형식으로 팔레트 이미지를 저장하면 볼륨이 더 줄어들 수 있습니다. 예를 들어, imagepng () 함수를 사용하여 출력을 사용하십시오.
imagepng($image, 'https://gitbox.net/images/optimized.png', 9);