PNG로 저장한 스크린샷은 쉽게 2–5 MB에 달하지만, 같은 이미지를 JPEG로 저장하면 약 200 KB 수준입니다 — 시각적으로 동일한 결과물인데도 10–25배 차이가 납니다. 이것이 PNG 형식의 핵심 트레이드오프입니다: 모든 픽셀을 정확하게 저장하는 무손실 압축으로, 근사나 품질 저하가 없습니다. PNG가 왜 큰지를 이해하는 것이 품질을 희생하지 않고 파일을 줄이는 첫 번째 단계입니다.
PNG 파일이 큰 이유
PNG는 무손실 저장을 위해 설계되었습니다. 모든 픽셀 값이 정확히 기록되므로 압축 알고리즘은 압축된 데이터에서 원본 이미지를 비트 단위로 재구성해야 합니다. 이 정밀도에는 고유한 크기 비용이 따릅니다:
- 완전한 픽셀 충실도 — 32비트 컬러(RGBA)의 1920×1080 이미지에는 8 MB 이상의 원시 픽셀 데이터가 있습니다. PNG의 Deflate 압축이 이를 줄이지만, JPEG의 손실 압축 비율에는 미치지 못합니다.
- Deflate 압축의 한계 — PNG는 ZIP 파일과 동일한 Deflate 알고리즘을 사용합니다. 무손실 압축은 중복성만 활용하므로 — 반복 패턴, 평탄한 색상 영역 — 복잡한 사진 콘텐츠는 압축할 중복성이 거의 없습니다.
- 알파 채널 오버헤드 — 투명도(네 번째 RGBA 채널)는 픽셀당 8비트를 추가합니다. 1920×1080 RGBA 이미지는 알파 데이터만으로 ~2 MB를 차지합니다.
- 내장된 메타데이터 — PNG 파일에는 EXIF 데이터, ICC 색상 프로파일, 생성 타임스탬프, 소프트웨어 주석이 포함될 수 있으며, 표시 목적이 없는 데이터가 5–100 KB를 차지하기도 합니다.
무손실 PNG 압축
무손실 압축 도구는 더 공격적인 Deflate 설정, 최적화된 필터 선택, 메타데이터 제거를 사용하여 PNG 파일을 재인코딩합니다 — 픽셀 값은 변경하지 않습니다. 출력 파일은 디코딩 시 입력 파일과 바이트 단위로 동일합니다. 일반적인 절감량: 10–30%.
주요 무손실 PNG 최적화 도구:
- oxipng — 빠른 멀티스레드 Rust 구현체입니다. 여러 압축 전략을 시도하고 최선의 결과를 선택합니다. 배치 처리에 권장됩니다.
- pngcrush — 클래식 도구입니다. 114가지 다른 압축 방법을 시도하고 가장 작은 결과를 사용합니다. oxipng보다 느리지만 널리 지원됩니다.
- Zopfli — Google의 초압축 라이브러리입니다. 가능한 가장 작은 Deflate 압축 출력을 생성하지만, 표준 도구보다 100배 느립니다. 변경되지 않을 정적 자산의 일회성 최적화에 이상적입니다.
이 도구들은 모든 PNG에 안전합니다 — 결과는 원본과 시각적으로, 수치적으로 동일합니다. 픽셀 완벽한 정확도가 필요한 경우에 올바른 선택입니다: 의료 이미지, 디자인 소스 파일, 문서용 스크린샷.
손실 PNG 압축
손실 PNG 압축은 인코딩 전에 이미지의 고유 색상 수를 줄이기 위해 양자화를 적용합니다. pngquant로 대중화된 가장 널리 사용되는 기법은 32비트 RGBA PNG(최대 1670만 색상)를 8비트 인덱스 컬러 PNG(최대 256색)로 변환합니다. 일반적인 절감량: 50–80%.
이것은 급격해 보이지만, 지능적인 디더링 알고리즘이 색상 근사 오류를 인접 픽셀에 분산시켜 인간의 눈이 부드러운 결과를 인식하도록 합니다. 로고, 아이콘, 일러스트, UI 스크린샷, 평탄한 색상 영역이 많은 그래픽의 경우 시각적 차이는 무시할 수 있습니다. 사진이나 미묘한 그라데이션이 있는 이미지는 높은 축소 비율에서 약간의 색상 밴딩이 보일 수 있습니다.
- 손실 PNG에 적합: 로고, 아이콘, 앱 스크린샷, 웹 UI 그래픽, 평탄한 색상의 일러스트.
- 손실 PNG를 피해야 할 경우: 사진, 그라데이션이 있는 이미지, 추가로 편집될 소스 파일.
색상 깊이 축소
PNG는 여러 색상 모드를 지원합니다. 이미지에 맞는 모드를 선택하면 눈에 띄는 품질 변화 없이 파일 크기를 크게 줄일 수 있습니다:
- 8비트 인덱스(팔레트) PNG — 최대 256색. 로고, 아이콘, 픽셀 아트, 일러스트, 평탄한 색상 영역이 있는 이미지에 최적입니다. 파일이 24비트 대비 60–80% 더 작을 수 있습니다. 대부분의 디자인 도구는 이미지가 32색만 사용하는 경우에도 기본적으로 32비트 PNG로 내보냅니다.
- 24비트 RGB PNG — 1670만 색상, 투명도 없음. 전체 색상 공간이 필요한 사진과 복잡한 색상 그라데이션이 있는 이미지에 최적입니다. 알파 채널이 없어 32비트보다 작습니다.
- 32비트 RGBA PNG — 1670만 색상 + 투명도. 이미지에 실제 투명도가 있을 때만 필요합니다. 많은 내보낸 PNG는 모든 픽셀이 완전히 불투명한 경우에도 알파 채널을 포함합니다 — 이를 제거하면 파일 크기가 ~25% 감소합니다.
PNG를 평가할 때 물어보세요: 이 이미지에 실제로 투명도가 있나요? 256가지 이상의 고유한 색상을 사용하나요? 두 답이 모두 아니오라면 8비트 팔레트 PNG가 적절하며 훨씬 작을 것입니다.
알파 채널 최적화
알파 채널은 PNG 파일에서 가장 자주 과도하게 사용되는 기능입니다. 32비트 RGBA PNG를 유지하기 전에 고려하세요:
- 투명도가 필요 없나요? — RGBA를 RGB로 변환하세요. 알파 채널을 완전히 제거하여 압축 전 원시 픽셀 데이터를 25% 줄입니다. 단색 배경에 배치되는 웹 이미지는 거의 항상 이것이 올바른 선택입니다.
- 이진 투명도? — 픽셀이 완전히 불투명하거나 완전히 투명한 경우 (부분 투명도 없음), 전체 알파 채널 대신 PNG의 tRNS 투명도 청크 사용을 고려하세요. 이는 픽셀별 값 대신 팔레트 인덱스로 투명도를 저장합니다.
- 반투명 가장자리 단순화 — 알려진 배경색에 대해 안티앨리어싱된 가장자리는 미리 합성하여 알파 필요성을 제거할 수 있습니다. 예를 들어 흰색 카드의 로고는 RGBA 대신 RGB로 내보낼 수 있습니다.
- 투명도가 전혀 없나요? — JPG로 변환하세요. PNG에 투명도가 없고 사진이 포함된 경우, JPEG가 동등한 시각적 품질로 훨씬 작을 것입니다.
PNG에서 WebP 또는 AVIF로 전환해야 할 때
웹 사용의 경우, 가장 큰 영향을 미치는 최적화는 종종 형식 자체를 전환하는 것입니다. 현대 이미지 형식은 동일한 시각적 품질에서 PNG보다 더 나은 압축을 달성합니다:
- WebP 무손실 — 무손실 모드의 Google WebP 형식은 동일한 이미지에 대해 PNG보다 평균 26% 더 작습니다. 투명도도 지원합니다. 모든 현대 브라우저에서 지원됩니다. 웹 그래픽의 경우 PNG를 WebP 무손실로 변환하는 것이 거의 항상 이점이 있습니다.
- WebP 손실 — 실수로 PNG로 저장된 사진의 경우, WebP 손실은 동등한 시각적 품질에서 JPEG보다 25–34% 더 작은 파일을 달성합니다. 사진 PNG를 압축하려는 것보다 훨씬 낫습니다.
- AVIF — 최신 형식입니다. AVIF 무손실은 PNG보다 50% 더 작을 수 있습니다. 최첨단 최적화에 탁월합니다. 브라우저 지원은 강력하지만(Chrome, Firefox, Safari 16+), WebP보다 약간 좁습니다.
소프트웨어를 설치하지 않고 PNG 파일을 WebP 또는 AVIF로 변환하려면 Picovert의 이미지 변환기를 사용하세요. 변환은 전적으로 브라우저에서 실행됩니다.
온라인 PNG 압축기
소프트웨어를 설치하지 않고 빠른 PNG 압축을 위해, Picovert의 이미지 압축기는 브라우저에서 직접 PNG 파일을 처리합니다. 하나 또는 여러 PNG 파일을 드롭하고 즉시 압축된 버전을 다운로드하세요. 계정이 필요 없고, 서버에 파일이 업로드되지 않으며 — 모든 처리가 로컬에서 이루어집니다.
압축기는 무손실 최적화를 적용합니다: 메타데이터 제거, 최적화된 Deflate 재인코딩, 미사용 청크 제거. 대부분의 PNG 그래픽에서 시각적 품질 변화 없이 15–40% 더 작은 파일을 생성합니다.
커맨드라인 도구
자동화된 워크플로우와 배치 처리를 위해 커맨드라인 도구는 세밀한 제어를 제공합니다:
- pngquant (손실, 50–80% 축소):
pngquant --quality=65-80 *.png
현재 디렉토리의 모든 PNG를 처리합니다.--quality플래그는 허용 가능한 품질 범위(0–100)를 설정합니다. 낮은 값은 더 많은 색상 축소로 더 작은 파일을 생성합니다. 출력 파일은 기본적으로원본-fs8.png로 이름이 지정됩니다. - oxipng (무손실, 10–30% 축소):
oxipng -o 6 *.png-o 6플래그는 최적화 수준(0–6, 6이 최대 압축)을 설정합니다. 높은 수준은 더 오래 걸리지만 더 작은 파일을 생성합니다. 메타데이터도 제거하려면--strip all을 사용하세요. - 두 가지 결합: 먼저 pngquant(손실 양자화)를 실행한 다음 oxipng (양자화된 출력의 무손실 재압축)를 실행합니다. 이렇게 하면 두 절감이 겹쳐져 총 60–75% 축소를 달성합니다.
PNG 압축 결정 트리
어떤 기법을 사용할지 확실하지 않으신가요? 이 결정 과정을 따르세요:
- 이미지에 사진이나 복잡한 그라데이션이 포함되어 있나요? — 예: JPEG (투명도 불필요) 또는 WebP로 변환하세요. PNG는 사진에 맞지 않는 형식입니다. 아니오: 계속합니다.
- 웹용인가요? — 예: WebP 무손실(또는 최대 압축을 위한 AVIF)로 변환하세요. 두 형식 모두 투명도를 지원하고 PNG보다 더 잘 압축됩니다. 아니오: 계속합니다.
- 이미지에 투명도가 있나요? — 아니오: RGBA를 RGB로 변환하세요 (사진이면 JPEG도 가능). 예: 계속합니다.
- 이미지가 256색 이상을 사용하나요? — 아니오: 8비트 팔레트 PNG 사용(pngquant로 손실 양자화). 예: 무손실 최적화가 적용된 24비트 또는 32비트 PNG 사용.
- 픽셀 완벽한 정확도를 위해 — 무손실 최적화(oxipng, pngcrush)를 사용하고 메타데이터를 제거하세요. 10–30% 절감을 기대하세요.
대부분의 웹 및 공유 사용 사례에서는 Picovert의 무료 PNG 압축기로 시작하세요 — 무손실 최적화를 자동으로 처리하고 몇 초 안에 결과를 제공하며, 설치할 소프트웨어가 없습니다. 더 깊은 절감이나 형식 변환이 필요할 때는 이미지 변환기와 위의 커맨드라인 레시피를 사용하세요.