개요
APNG(Animated Portable Network Graphics)은 PNG 포맷을 기반으로 하여 정적인 이미지와 동일한 압축 방식을 사용하면서 애니메이션을 지원하도록 확장한 파일 포맷이다. 기존 PNG와 호환성을 유지하면서 프레임별 투명도, 손실 없는 압축, 24비트 색상(또는 48비트 컬러) 등을 그대로 활용한다. 파일 확장자는 주로 .apng 혹은 .png(애니메이션을 포함한다면 APNG임을 표시)이다.
역사
- 2004년: 구글 엔지니어 Greg Roelofs와 Mozilla 개발자들이 PNG 포맷에 애니메이션 기능을 추가하기 위한 제안을 시작하였다.
- 2004년 11월: APNG 규격 초안이 공개되었으며, 동일한 파일 구조를 유지하기 위해 PNG 청크(chunk) 방식에
acTL,fcTL,fdAT등의 새로운 청크를 도입하였다. - 2007년: Mozilla Firefox 3.0부터 APNG 지원이 정식으로 포함되었다.
- 2017년: 구글 크롬이 Chrome 59 버전부터 APNG을 기본 지원하게 되면서 웹 브라우저 전반에 걸친 호환성이 크게 향상되었다.
파일 구조와 핵심 청크
- IHDR – 이미지 헤더(폭, 높이, 비트 깊이 등)
- acTL – 애니메이션 제어 청크; 전체 프레임 수와 루프 횟수를 지정한다.
- fcTL – 각 프레임 제어 청크; 프레임 지연 시간, 디스플레이 방법(전통적/혼합), 청크 크기 등을 정의한다.
- fdAT – 프레임 데이터 청크; 실제 이미지 데이터(압축된 IDAT와 동일한 방식) 를 포함한다.
- IDAT – 정적 PNG와 동일하게 기본 이미지 데이터를 담는다(첫 프레임에 사용).
- IEND – 파일 끝을 알리는 청크.
청크는 PNG 사양과 동일한 CRC 검증을 수행하므로, 기존 PNG 디코더는 알 수 없는 청크(acTL, fcTL, fdAT)를 무시하고 정적인 이미지만을 렌더링한다. 따라서 APNG 파일은 PNG 뷰어에서도 정상적인 정적 이미지(첫 프레임)로 표시된다.
주요 특징
| 특징 | 설명 |
|---|---|
| 무손실 압축 | PNG와 동일한 Deflate 압축 방식을 사용, 화질 손실이 없음 |
| 투명도 지원 | 8비트 알파 채널(32비트 컬러)까지 완전 투명도 지원 |
| 프레임 제어 | 각 프레임마다 지연 시간(ms), 디스플레이 방식(전통적/혼합) 지정 가능 |
| 루프 제어 | 무한 루프 혹은 지정된 횟수만큼 재생 가능 |
| PNG와 호환 | 기존 PNG 디코더가 파일을 읽을 때 첫 프레임만 표시, 호환성 문제 최소화 |
| 크기 효율 | GIF보다 평균 30~50% 작은 파일 크기, 특히 복잡한 색상·투명도가 많은 경우 효율적 |
지원 환경
| 플랫폼/브라우저 | 지원 상황 |
|---|---|
| Firefox | 3.0 이상 기본 지원 |
| Chrome | 59 이상 기본 지원 |
| Edge | Chromium 기반 버전에서 지원 |
| Safari (macOS/iOS) | 14.0 이상 지원 (제한적, 일부 설정 필요) |
| Android WebView | Chromium 기반이면 지원 |
| 이미지 편집 툴 | GIMP, Adobe Photoshop(플러그인), Aseprite, Krita 등에서 편집 가능 |
| 모바일 앱 | Discord, Telegram 등 주요 메신저에서 APNG 스티커 및 애니메이션으로 활용 |
활용 사례
- 웹 UI/UX: 로딩 스피너, 버튼 호버 효과 등 가벼운 애니메이션 구현
- 소셜 미디어: 트위터, 레딧 등에서 GIF 대신 고품질 투명 애니메이션 제공
- 게임 UI: 투명도가 필요한 아이콘·버프 효과 등
- 디지털 광고: 고해상도 애니메이션 배너, 크로스플랫폼 호환성 유지
관련 포맷과 비교
| 포맷 | 압축 방식 | 투명도 | 색심도 | 파일 크기(동일 내용) | 주요 장점 |
|---|---|---|---|---|---|
| GIF | LZW (무손실) | 1비트(단색) | 8비트 (256색) | 대체로 크거나 색상 제한이 있음 | 오래된 호환성 |
| APNG | Deflate (무손실) | 8비트 알파 | 24비트/48비트 | 일반적으로 GIF보다 30~70% 작음 | 고해상도·투명도 |
| WebP (애니메이션) | VP8/VP8L (손실/무손실) | 8비트 알파 | 24비트 | 종종 APNG보다 작음 | 고효율, 브라우저 지원 확대 |
| HEIF/AVIF | HEVC/AV1 기반 | 8비트 알파 | 24비트 이상 | 매우 높은 압축률 | 차세대 포맷, 아직 제한적 지원 |
표준화 및 사양
- RFC 8295(2020) – “The Animated Portable Network Graphics (APNG) Specification”으로 정식 인터넷 표준으로 등록되었다.
- W3C – HTML·CSS·SVG 등에서 APNG를 이미지 파일 형식으로 공식 인정하고 있다.
참고 문헌
- Roelofs, G., “APNG Specification”, 2004. https://wiki.mozilla.org/APNG_Specification
- RFC 8295 – Internet Engineering Task Force, “The Animated Portable Network Graphics (APNG) Specification”, 2020.
- Mozilla Developer Network (MDN), “APNG”, 2023. https://developer.mozilla.org/ko/docs/Web/Media/Formats/Image_types#apng
- Google Chrome Platform Status, “Support for Animated PNG”, 2017.
위 내용은 2026년 현재까지 알려진 기술적·역사적 정보를 종합한 것으로, 최신 브라우저 버전 및 라이브러리 업데이트에 따라 세부 사항이 변동될 수 있다.