U E D R , A S I H C RSS

PNG File Format/File Structure

파일 ꡬ쑰

PNG νŒŒμΌμ€ PNG μ‹œκ·Έλ„ˆμ²˜μ™€ μ—¬λŸ¬κ°œμ˜ chunk둜 이루어짐.

1. PNG file μ‹œκ·Έλ„ˆμ²˜

  • PNG파일의 처음 8λ°”μ΄νŠΈλŠ” λ‹€μŒμ˜ μ‹­μ§„ κ°’λ“€λ‘œ μ‹œμž‘.

    137 80 78 71 13 10 26 10
      

2. Chunk Layout

  • 각 chunkλŠ” λ„€ λΆ€λΆ„μœΌλ‘œ λ‚˜λ‰˜μ–΄μ§„λ‹€.
    • Length : 4λ°”μ΄νŠΈ. Length, Chunk Type, CRC κΈΈμ΄λŠ” ν¬ν•¨λ˜μ§€ μ•Šμ€ 값이닀.
    • Chunk Type : 4λ°”μ΄νŠΈ. λ°˜λ“œμ‹œ μ•ŒνŒŒλ²³μ΄μ–΄μ•Ό 함(νŽΈλ¦¬ν•¨. 가독성을 μœ„ν•΄). 엔코더, λ””μ½”λ”λŠ” 이 값을 이진 κ°’μœΌλ‘œ 인지.
    • Chunk Data : Type 에 λ”°λ₯Έ 데이터. 길이가 0일수 있음.
    • CRC : Chunk Type + Chunk Data 에 λŒ€ν•œ 4 λ°”μ΄νŠΈ CRC κ°’.

3. Chunk 이름짓기 κ·œμΉ™

4. CRC μ•Œκ³ λ¦¬μ¦˜

5. Chunk Spec.

  • 제일 μ²˜μŒμ—λŠ” IHDR chunkκ°€ μ˜€λŠ”λ°, λ‹€μŒμ˜ μš”μ†Œλ‘œ 이루어져 μžˆλ‹€.
    • Width : ν”½μ…€λ‹¨μœ„μ˜ 이미지 λ„ˆλΉ„
    • Height : ν”½μ…€λ‹¨μœ„μ˜ 이미지 높이
    • Bit depth : ν•˜λ‚˜μ˜ μƒ˜ν”Œ(ν”½μ…€κ³ΌλŠ” λ‹€λ₯Έκ°œλ…)λ‹Ή λ˜λŠ” 파레트 μΈλ±μŠ€λ‹Ή μ“°μ΄λŠ” λΉ„νŠΈμ˜ 수
    • Compression method : 이미지 데이터λ₯Ό μ••μΆ•ν•˜λŠ”λ° μ“°λŠ” 방법
    • Filter method : 이미지 데이터에 λŒ€ν•œ μ „μ²˜λ¦¬ 방법. Compressionκ³Ό κ΄€λ ¨.
    • Interlace method : 이미지에 λŒ€ν•œ λΉ„νŠΈμ˜€λ”.
      Color Type Allowed Bit Depths Interpretation
      0 1,2,4,8,16 Each pixel is a grayscale sample.
      2 8, 16 Each pixel is an R, G, B triple.
      3 1, 2, 4, 8 Each pixel is a palette index; a PLTE chunk must appear.
      4 8, 16 Each pixel is a grayscle sample, followed by an alpha sample.
      6 8, 16 Each pixel is an R, G, B triple, followed by an alpha sample.

  • PLTE chunk : 256개의 μ—”νŠΈλ¦¬λ₯Ό κ°–μŒ. R, G, B 색상)
  • IDAT chunk : μ‹€μ œ ν”½μ…€κ°’. IDATλŠ” μ—¬λŸ¬κ°œκ°€ 올 수 μžˆλ‹€. (see also PNGFileFormat/ImageData)
  • IEND chunk : λ°˜λ“œμ‹œ 이 chunk 둜 λλ‚˜μ•Ό 함. Data κΈΈμ΄λŠ” 0.

Summary

Name μ—¬λŸ¬κ°œ ν—ˆμš©? νŒŒμΌμƒμ˜ μœ„μΉ˜ μ œμ•½
IHDR x λ°˜λ“œμ‹œ 제일 μ•žμ— 와야함 (처음의 8λΉ„νŠΈ μ œμ™Έ)
PLTE x IDAT전에 와야함
IDAT o μ—¬λŸ¬κ°œκ°€ μ‚¬μš©λœλ‹€λ©΄ λ°˜λ“œμ‹œ 연속적이어야 함
IEND x λ°˜λ“œμ‹œ 제일 끝에 와야 함
----
PNGFileFormat
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:58
Processing time 0.0137 sec