本篇簡單梳理一下關於png格式圖片的那些事。
一、簡介
PNG圖片是由很多個數據塊組成的,每一個數據塊代表不同的有關於圖片的信息。除png頭以外,每一個數據塊都是按照數據長度+數據標識符+CRC校驗碼的結構來組織。如下圖:
二、主要的PNG數據塊
- PNG圖片的頭信息用8個字節來唯一標識圖像的類型。
“89 50 4E 47 00 DA 1A 0A” 爲png文件的標識符
2 在頭標識之後,緊跟着的是叫做IHDR的數據段,包含了圖像的高度,寬度,位深等相關信息。
3 IDAT是PNG中主要的壓縮數據信息,其大概結構如圖:
4 在文件結束的時候,有文件結束的標誌,同樣按照數據段的組織格式組織,不過數據長度爲0 。
三、主要數據塊的位置要求
不同的數據塊,在PNG文件存儲組織的時候有一定的位置和要求的限制,看下圖就瞭然了。
結語
當然,PNG還有其他的一些數據段,不過萬變不離其蹤,其組織方式依然是類似的,只是不同操作系統、工具或者平臺產生的PNG圖片的組織格式可能不完全一樣。只要抓住了最關鍵的IHDR, IDAT以及文件的開頭和結束標識符,其他依此類推。