본문 바로가기
Forensics

[개념] PNG 파일 구조

by sseddi 2020. 10. 10.
728x90

오늘은 PNG 파일의 구조에 대해 살펴보려고 한다.

 

먼저

PNG 파일의 헤더 시그니처(8byte)는 다음과 같다.

89 50 4E 47 0D 0A 1A 0A

 

 

이 이후에는 Chunk라는 그룹들로 나뉘어 구성된다.

 

청크 타입은 많지만 

모든 PNG 파일에 포함되어야 하는 청크는 아래 세 가지가 있다.

 

IHDR chunk : 이미지 헤더 정보

IDAT chunk : 이미지 데이터 정보

IEND chunk : 파일의 끝

 

IHDR

먼저 IHDR 청크(13byte)는

이미지 헤더 정보를 나타내며, PNG 이미지의 크기, 필터링 방식, 압축 방식 등을 알려준다.

{
 Length : 00 00 00 0D (13 byte),
 Chunk Type : IHDR,
 Chunk Data ( 13 byte ),
 {
   Width (4 byte),
   Height (4 byte),
   Bit depth (1 byte),
   Color Type (1 byte),
   Compression method (1 byte),
   Filter method (1 byte),
   Interlace method (1 byte),
 }
 CRC
}

 

IDAT

IDAT 청크는 실제로 이미지 데이터가 있는 부분으로 

한 PNG 파일은 여러 개의 IDAT 청크를 가질 수 있다.

->이는 데이터를 적절한 사이즈로 나누어 전송하기 위한 것이다.

 

IDAT 청크는 이미지의 특정 부분을 나타내는 것이 아닌 전체 이미지를 한꺼번에 압축한 뒤

여러 개의 IDAT 청크에 나누는 방식이므로 모든 IDAT 청크가 있어야 이미지 디코딩을 할 수 있다.

 

IEND

IEND 청크는 이미지의 맨 뒤에 위치하여 파일의 끝을 나타낸다.

 

 

참고)

ryanking13.github.io/2018/03/24/png-structure.html

728x90

댓글