png格式 二進制存儲方式


PNG文件結構分析之一(了解PNG文件存儲格式)

       8字節 → PNG文件頭(固定)

  再往后就是第一個數據塊:數據塊由4字節的數據域長度,4字節的類型碼,指定長度(前面提到的數據域長度,這里IHDR就是0x0D個字節也即13字節)的數據,和4字節的CRC碼組成。

  而IHDR的組成為:4字節寬度,4字節高度,1字節位深度,1字節顏色類型,1字節壓縮方法,1字節濾波方法,1字節隔行掃描方法。

  • 00 00 00 0D 說明IHDR頭塊長為13
  • 49 48 44 52 IHDR標識
  • 00 00 00 08 圖像的寬,8像素
  • 00 00 00 08 圖像的高,8像素
  • 04 色深,2^4=16,即這是一個16色的圖像(也有可能顏色數不超過16,當然,如果顏色數不超過8,用03表示更合適)
  • 03 顏色類型,索引圖像
  • 00 PNG Spec規定此處總為0(非0值為將來使用更好的壓縮方法預留),表示使壓縮方法(LZ77派生算法)
  • 00 同上
  • 00 非隔行掃描
  • 36 21 A3 B8 CRC校驗碼

CRC就是對類型碼和數據域進行計算得到的

-------------------------

(固定)8個字節 89 50 4E 47 0D 0A 1A 0A 為 png的文件頭

(固定)4個字節 00 00 00 0D (即為十進制的13)代表數據塊的長度為13

(固定)4個字節 49 48 44 52 (即為ASCII碼的IHDR)是文件頭數據塊的標示(IDCH)

(可變) 13位數據塊(IHDR)   
      前四個字節代表該圖片的寬 00 00 00 08 
      后四個字節代表該圖片的高 00 00 00 08 
      后五個字節依次為: Bit depth、ColorType、 Compression method、 Filter method、Interlace method

 (可變)剩余四字節為該png的CRC檢驗碼 36 21 A3 B8,由從IDCH到THDR的十七位字 節進行crc計算得到。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM