日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )

發布時間:2025/6/17 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

        • 圖形文件準備 ( PNG 文件 )
        • PNG 文件信息分類
        • 數據塊結構
        • IHDR 數據塊 簡介
        • IHDR 數據塊 結構



圖形文件準備 ( PNG 文件 )


分析的文件準備 :

  • 1.創建文件 : 在 Photoshop 中創建一張 2x2 的白色圖片 , 下面開始分析該圖片的結構 ;
  • 2.下面是創建圖片時設置的參數 :
  • 3.二進制信息查看 : 使用二進制查看器打開該文件 , 可以看到如下文件的二進制信息 :



PNG 文件信息分類


PNG 二進制文件中的數據分類 :

  • 1.PNG 圖片標志信息 : 開始的 8 個字節 , 表示該文件是一個 PNG 圖片文件 ;
//PNG 圖像文件頭信息 89 50 4E 47 0D 0A 1A 0A

  • 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 数据块详解 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。