PNG 이미지 (.png)
W3C 표준Portable Network Graphics(PNG)는 특허 사용료 부담이 없는 래스터 그래픽 파일 형식으로, 무손실 데이터 압축, 인덱스 색상, 가변 알파 채널 투명도를 지원합니다.
PNG을(를) JPG(으)로 변환
무료 브라우저 내 PNG에서 JPG로 변환하는 도구입니다. 기기에서 파일을 즉시 변환할 수 있습니다.
PNG 온라인 압축
비공개 - 파일은 기기를 벗어나지 않습니다
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 PNG 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 PNG 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
89 50 4E 47 0D 0A 1A 0AASCII 표현: .PNG....
표준화: W3C Recommendation (1996) / ISO/IEC 15948:2004
기술 사양
| 컨테이너 아키텍처 | 청크 기반 바이너리 컨테이너 (청크당 4바이트 CRC32 검증 포함) |
| 압축 | Deflate(LZ77 + 허프만 코딩) 압축 및 5가지 예측 스캔라인 필터(None, Sub, Up, Average, Paeth) |
| 바이트 엔디안 | 청크 길이, 크기 및 CRC에 대해 빅 엔디안(네트워크 바이트 순서) 사용 |
| 색 공간 | sRGB, Display P3, 인덱스 팔레트 (1-8비트), 그레이스케일, 트루컬러 (24/48비트) |
| 채널 및 구조 | RGB + 알파 (채널당 최대 16비트 / 64비트 RGBA) |
| 최대 크기 | 2,147,483,647 x 2,147,483,647 픽셀 (4바이트 부호 없는 정수) |
| 투명도 | 전체 8비트 / 16비트 가변 알파 투명도 채널 |
| 스트리밍 및 프로그레시브 | Adam7 7패스 인터레이싱 알고리즘을 통한 점진적 2차원 스캔라인 렌더링 지원 |
기술 비교 매트릭스: PNG 대 경쟁사
| 기술적 속성 | PNG (현재) | WebP | AVIF | JPEG |
|---|---|---|---|---|
| 압축 방식 | 엄격한 무손실 (Deflate + 2D 예측 필터) | 손실 (VP8) 및 무손실 (VP8L) | 손실 (AV1 인트라) 및 무손실 | 엄격한 손실 (이산 코사인 변환) |
| 알파 투명도 | 전체 8비트 / 16비트 가변 알파 채널 | 8비트 알파 채널 지원 | 8비트 / 10비트 / 12비트 알파 지원 | 투명도 채널 지원 없음 |
| 파일 크기 (사진) | 큼 (일반적으로 손실 형식보다 3배~6배 큼) | 작음 (JPEG보다 25%-35% 작음) | 매우 작음 (JPEG보다 40%-55% 작음) | 중간 기준선 |
| 파일 크기 (그래픽/UI) | 스크린샷, 라인 아트, 텍스트에 매우 최적화됨 | 우수한 무손실 모드 | 좋음, 단 인코딩 속도가 느림 | 나쁨 (날카로운 모서리를 따라 링잉 아티팩트 발생) |
| 브라우저 호환성 | 1998년 이후 모든 브라우저에서 100% 범용 지원 | 최신 브라우저 97%+ 지원 | 최신 브라우저 93%+ 지원 | 100% 범용 지원 |
일반적인 손상 모드 및 헥스 복구 가이드
이미지 뷰어에 '치명적 오류: 유효한 PNG 파일이 아닙니다'라는 메시지가 표시되거나 열리지 않습니다.
근본 원인: ASCII 전송 모드에 의해 처음 8바이트가 변경되었습니다 (0x0D 0x0A가 0x0A 또는 0x0D 0x0D 0x0A로 변형됨).
복구: hex 편집기에서 파일을 열고 처음 8바이트가 '89 50 4E 47 0D 0A 1A 0A'와 일치하는지 확인하십시오. 이 정확한 8바이트 헤더를 복원하면 자주 이미지를 복구할 수 있습니다.
pngcheck가 'IDAT 청크의 CRC 오류'를 보고하거나 하단 스캔라인이 손상된 채 이미지가 부분적으로 로드됩니다.
근본 원인: 압축된 zlib 데이터 스트림의 비트 손상 또는 IDAT 청크의 잘못된 CRC32 체크섬.
복구: pngcheck -f 또는 Deflate 스트림 복구 유틸리티를 사용하여 유효한 CRC32 값을 다시 계산하거나, 손상된 블록 전까지 살아남은 스캔라인을 압축 해제하십시오.
데스크톱 뷰어에서는 이미지가 잘 렌더링되지만 iOS 애플리케이션에서는 실패합니다.
근본 원인: iOS가 Apple의 독점적인 CgBI 바이트 스왑 형식 또는 비표준 색상 공간 청크를 예상하기 때문입니다.
복구: 'pngcrush -revert-iphone-optimizations'를 사용하여 이미지를 정규화하고 표준 W3C RGBA 순서를 복원하십시오.
보안 분석 및 파서 공격 벡터
PNG는 많은 운영 체제와 앱에서 지원됩니다. 보안 위험에는 디코더 메모리 고갈 공격과 악성 보조 청크가 포함됩니다.
알려진 공격 벡터
- 샌드박스되지 않은 디코더에서 메모리 부족(OOM) 서비스 거부를 유발하는 지나치게 큰 tEXt 및 zTXt 메타데이터 청크.
- 레거시 libpng 릴리스의 힙 버퍼 오버플로 취약점 (예: png_set_PLTE의 CVE-2015-8126).
- 파일 크기는 작지만 엄청난 크기(예: 100,000 x 100,000 픽셀)를 선언하여 메모리를 고갈시키는 픽셀 플러드 압축 해제 공격.
- 보조 비공개 청크(예: eXIf 또는 사용자 정의 청크 유형)에 암호화된 페이로드를 숨기는 스테가노그래피 유출.
방어적 모범 사례: 메모리에 픽셀 버퍼를 할당하기 전에 항상 이미지 크기를 검증하십시오. 메모리 안전 새니타이저를 사용하여 사용자 업로드 시 필수적이지 않은 보조 청크(eXIf, tEXt)를 제거하십시오.
역사적 배경 및 주요 이력
주요 장점
- PNG는 무손실 압축을 사용하므로 변경되지 않은 이미지를 인코딩할 때 압축 손실이 생기지 않습니다. 다만 편집이나 색상 변환으로 픽셀 값이 달라질 수 있습니다.
- 부드러운 8비트 알파 투명도로 복잡한 배경에서도 깔끔하게 블렌딩할 수 있습니다.
- 감마 보정 및 색도 청크를 통해 다양한 모니터에서 일관된 렌더링을 보장합니다.
기술적 제한 사항 및 단점
- 사진 콘텐츠의 경우 WebP나 AVIF 같은 최신 손실 압축 형식에 비해 파일 크기가 현저히 큽니다.
- 표준 PNG에는 네이티브 멀티프레임 애니메이션이 없습니다(APNG 확장 필요).
- 높은 비트 심도(채널당 16비트)는 메모리 내에서 압축 해제 시 엄청나게 큰 버퍼를 생성합니다.
흥미로운 기술적 상식
- 8바이트 매직 헤더는 FTP 전송 중 발생할 수 있는 CR/LF 줄 바꿈 손상을 감지하도록 특별히 설계되었습니다.
- PNG의 비공식 재귀 약어는 'PNG's Not GIF'입니다.
- Apple은 직접 GPU 렌더링을 위해 RGBA를 BGRA로 반전시키는 독점적인 CgBI 청크를 iOS 앱 PNG에 사용합니다.
자주 묻는 기술 질문
이미지 편집기에서 저장할 때 PNG 파일 크기가 커지는 이유는 무엇입니까?
소프트웨어 제품군마다 서로 다른 Deflate 압축 수준과 예측 스캔라인 필터 휴리스틱을 사용합니다. 포토샵과 같은 프로그램은 종종 압축되지 않은 색상 프로필, XMP 메타데이터 블록, 최적화되지 않은 IDAT 청크 크기를 추가합니다. File2File.app Compressor와 같은 전용 도구는 5가지 스캔라인 필터를 모두 재평가하여 최소 파일 크기를 달성합니다.
PNG-8과 PNG-24는 무엇이 다릅니까?
PNG-8은 최대 256색의 인덱스 색상 팔레트(GIF와 유사)를 사용하여 단순한 아이콘에 적합한 매우 작은 파일을 생성합니다. PNG-24는 1,670만 색상(채널당 트루컬러 8비트)을 지원하며, PNG-32는 8비트 알파 투명도 채널을 추가합니다.
PNG에 예측 스캔라인 필터가 5가지 있는 이유는 무엇입니까?
Deflate는 반복되는 바이트 패턴을 압축합니다. 사진이나 그라데이션의 픽셀 값은 서서히 변하므로 PNG는 인접 픽셀 간의 차이를 계산하여 각 스캔라인(None, Sub, Up, Average, Paeth)을 필터링합니다. 이는 그라데이션 데이터를 값이 거의 0인 바이트로 이루어진 문자열로 변환하여 Deflate에서 훨씬 더 강력하게 압축되도록 합니다.
PNG는 상업 인쇄용 CMYK 색상 공간을 지원합니까?
아니요. 공식 W3C PNG 사양은 색상 유형을 Grayscale, Indexed, RGB로 의도적으로 제한합니다. CMYK가 필요한 전문 인쇄 워크플로는 TIFF 또는 PDF 컨테이너를 사용해야 합니다.
관련 PNG 변환 쌍
PNG 래스터 이미지를 JPEG 형식으로 변환하면 손실 압축이 적용되어 파일 크기가 줄어들며, 웹사이트에서 이미지가 더 빠르게 로드되고 저장 공간을 적게 차지하게 됩니다.
손실 압축된 JPEG 이미지를 무손실 PNG 이미지로 변환하면 추가적인 세대 손실을 방지하고 알파 채널 투명도 지원을 추가할 수 있습니다.
PNG 이미지를 WebP로 변환하면 투명도를 유지하면서 파일 크기를 줄일 수 있습니다. 다만 결과는 손실 또는 무손실 인코딩 방식과 이미지 내용에 따라 달라집니다.
WebP를 PNG로 변환하면 PNG를 지원하는 소프트웨어에서 사용할 정지 이미지를 만들 수 있습니다. WebP 애니메이션은 유지되지 않으며, 손실 압축으로 사라진 원본 정보는 복원할 수 없습니다.
HEIC를 PNG로 변환하면 손실 압축된 사진이 널리 지원되는 무손실 그래픽 파일로 바뀝니다.
SVG 벡터 파일을 PNG 래스터 이미지로 변환하면 코드 기반의 확장 가능한 그래픽이 범용 애플리케이션 호환성을 갖춘 고정 픽셀 그리드로 바뀝니다.
반응형 웹 확장성과 벡터 호환 레이아웃 통합을 위해 래스터 PNG 이미지를 SVG XML 벡터 컨테이너로 감쌉니다.
서버 전송 없이 브라우저 안에서 Adobe Photoshop PSD 그래픽을 완전한 알파 채널 투명도가 포함된 무손실 PNG 이미지로 변환합니다.