이번 자작 그림은 PNG로 저장하기 전에 16색 팔레트로 바꾸자 원본의 색이 그대로 남지 않았습니다. 색 수는 256개에서 16개로 줄었고, 픽셀 크기는 같아도 그라데이션이 색 띠로 나뉘어 보였습니다.
팔레트 변환 과정 및 결과 확인
256×160픽셀의 RGB 그라데이션 한 장을 직접 만들었습니다. Pillow 12.3.0에서 MEDIANCUT 방식으로 색 수를 16개로 제한하고, 디더링을 끈 설정(colors=16, dither=NONE)으로 팔레트 변환한 뒤 PNG로 저장했습니다.
Pillow의 Image.quantize 공식 문서는 이 함수가 지정한 색 수의 P 모드 이미지로 변환한다고 설명하며, method의 선택지로 MEDIANCUT을 제시합니다. 여기서는 그 방식과 colors=16을 명시적으로 사용했습니다. 실제로 남은 색 수와 파일 용량은 아래 자작 그림을 변환한 뒤 측정한 값이며, 공식 문서가 이 실험 수치를 검증한 것은 아닙니다.
원본은 RGB 모드, 결과는 팔레트 모드인 P였으며 고유한 RGB 색은 256개에서 16개로 줄었습니다. 두 파일의 픽셀 크기는 모두 256×160이었습니다. 아래 그림과 두 PNG를 같은 크기로 놓고 색이 이어지는 부분과 띠의 경계를 비교해 보세요.

실측 자료 · 하루보탬
실측에 사용한 RGB 원본과 16색 결과 PNG 내려받기: 256색 RGB 그라데이션 원본 PNG · 16색 팔레트로 변환한 결과 PNG
파일이 작아져도 원본 색은 같지 않았습니다
파일 크기는 원본 510바이트에서 결과 302바이트로 줄었습니다. 하지만 두 파일을 RGB로 다시 읽어 비교하니 39,360개 픽셀의 색 값이 달랐습니다.
파일이 작아졌다는 사실과 원본 색이 그대로 남았다는 판단은 구분해야 합니다. 이 예제에서는 픽셀 수를 줄이지 않고도 색 수와 색 값이 바뀌었습니다.
PNG 저장 전에 색 변환이 있었는지 확인하세요
PNG로 저장한 결과에서 색 띠가 눈에 띈다면 원본을 남겨 두고, 저장 전에 색 수를 제한하는 팔레트 변환을 했는지 확인해 보세요. 이번에는 그 변환을 명시적으로 거친 뒤 PNG로 저장했습니다. PNG로 저장하기만 하면 항상 색이 줄어든다는 결과는 아닙니다.
이 시험은 직접 만든 그라데이션 한 장을 위 설정으로 처리한 결과입니다. 실제 사진·다른 변환 도구·다른 앱의 기본 저장·물리 인쇄는 시험하지 않았습니다. 16색이 다른 파일에도 적합하다고 판단할 근거는 없습니다.
적용 조건과 확인 범위
- 직접 만든 파일을 명시한 Python 도구로 처리한 결과입니다. 실제 앱 조작·물리 인쇄·다른 파일 전체의 성능은 시험하지 않았습니다.
확인일: 2026-09-11
