【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )
生活随笔
收集整理的這篇文章主要介紹了
【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 圖形文件準備 ( PNG 文件 )
- PNG 文件信息分類
- 數據塊結構
- IHDR 數據塊 簡介
- IHDR 數據塊 結構
圖形文件準備 ( PNG 文件 )
分析的文件準備 :
- 1.創建文件 : 在 Photoshop 中創建一張 2x2 的白色圖片 , 下面開始分析該圖片的結構 ;
- 2.下面是創建圖片時設置的參數 :
- 3.二進制信息查看 : 使用二進制查看器打開該文件 , 可以看到如下文件的二進制信息 :
PNG 文件信息分類
PNG 二進制文件中的數據分類 :
- 1.PNG 圖片標志信息 : 開始的 8 個字節 , 表示該文件是一個 PNG 圖片文件 ;
- 2.PNG 圖片數據信息 : PNG 圖片的內容主要是靠數據信息進行描述的 , 為了描述各種數據信息 , 定義了很多數據塊種類 ;
- ① 關鍵數據塊 : 關鍵數據塊是必不可少的數據塊 ;
- 1> IHDR 數據塊 : 文件頭數據塊 , 描述文件的相關信息
- 2> IDATA 數據塊 : 圖像數據塊 , 存儲圖像的具體的像素顏色數據
- 3> IEND 數據塊 : 圖像結束數據塊 , 是 PNG 文件的最后一個數據塊 ;
- 3> ?\cdots? 數據塊類型有很多種此處不再詳細說明名 ;
- ② 輔助數據塊 : 該類型數據塊是可選的 ;
- ① 關鍵數據塊 : 關鍵數據塊是必不可少的數據塊 ;
數據塊結構
數據塊結構 : 每個數據塊由 4 部分組成 :
- 1.Length ( 長度 ) : 大小 4 字節 , 數據塊的長度 , 取值范圍 [0,231?1][0, 2^{31} - 1][0,231?1]
- 2.Chunk Type Code ( 數據塊類型碼 ) : 大小 4 字節 , 數據塊的類型由 A~Z 和 a ~ z 等 4 個 ASCII 編碼的字母組成 ;
- 3.Chunk Data ( 數據塊數據 ) : 大小是在 Length 中設置的大小 , 存儲對應類型的數據 ;
- 4.CRC ( 循環冗余監測信息 ) : 大小 4 字節 , 全稱 cyclic redundancy check , 對 Chunk Type Code 和 Chunk Data 進行計算得到的 , 用來校驗數據完整性 ;
IHDR 數據塊 簡介
IHDR 數據塊簡介 :
-
1.IHDR 數據塊作用 : 文件頭數據塊 , 存儲圖像數據的基本信息 , 是 PNG 文件的第一個數據塊 , 該類型數據塊只能有一個 ;
-
2.數據塊大小 : 該數據塊由 13 字節組成 , 分為 7個部分 ;
IHDR 數據塊 結構
IHDR 數據塊 結構 :
- 1.Width ( 寬度 ) : 4 Bytes , 圖像的寬度 , 單位 : 像素 ;
- 2.Height ( 高度 ) : 4 Bytes , 圖像的高度 , 單位 : 像素 ;
- 3.Bit depth ( 位深度 ) : 1 Byte , 圖像深度 ; 下面是位深度的取值范圍 :
- ① 真彩色圖像 : 8 位 , 16 位 ;
- ② 灰度圖像 : 1 位 , 2 位 , 4 位 , 8 位 , 16 位 ;
- ③ 索引彩色圖像 : 1 位 , 2 位 , 4 位 , 8 位 ;
- 4.ColorType ( 顏色類型 ) : 1 Byte , 下面是可取值的范圍和意義 :
- ① 類型 0 : 灰度圖像 ;
- ② 類型 2 : 真彩色圖像 ;
- ③ 類型 3 : 索引彩色圖像 ;
- ④ 類型 4 : 帶 α\alphaα 通道數據的灰度圖像 ;
- ⑤ 類型 6 : 帶 α\alphaα 通道數據的真彩色圖像 ;
- 5.Compression method ( 壓縮方法 ) : 1 Byte , 使用 LZ77 壓縮算法 ;
- 6.Filter method ( 濾波器方法 ) : 1 Byte ;
- 7.Interlace method ( 掃描方法 ) : 1 Byte , 可取值的選擇 :
- ① 方法 0 : 非隔行掃描法 ;
- ② 方法 1 : Adam7 掃描方法 ( 7遍隔行掃描方法 ) ;
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 属性动画】属性动画 P
- 下一篇: 【Android 应用开发】Paint