JPEG——獲取圖像寬和高

一、文件結構

FIF文件格式直接使用JPEG標準爲應用程序定義的許多標記,因此JFIF格式成了事實上JPEG文件交換格式標準。JPEG的每個標記都是由2個字節組成,其前一個字節是固定值0xFF。每個標記之前還可以添加數目不限的0xFF填充字節(fill byte)。下面是其中的8個標記:

1.   SOI 0xD 圖像開始

2.   APP0 0xE0 JFIF應用數據塊

3.   APPn 0xE1 - 0xEF 其他的應用數據塊(n, 1~15)

4.   DQT 0xDB 量化表

5.   SOF0 0xC0 幀開始

6.   DHT 0xC4 霍夫曼(Huffman)表

7.   SOS 0xDA 掃描線開始

8.   EOI 0xD9 圖像結束

二、JPEG文件由下面的8個部分組成:

(1) 圖像開始SOI(Start of Image)標記

(2) APP0標記(Marker)

① APP0長度(length)

② 標識符(identifier)

③ 版本號(version)

④ X和Y的密度單位(units=0:無單位;units=1:點數/英寸;units=2:點數/釐米)

⑤ X方向像素密度(X density)

⑥ Y方向像素密度(Y density)

⑦ 縮略圖水平像素數目(thumbnail horizontal pixels)

⑧ 縮略圖垂直像素數目(thumbnail vertical pixels)

⑨ 縮略圖RGB位圖(thumbnail RGB bitmap)

(3) APPn標記(Markers),其中n=1~15(任選)

① APPn長度(length)

② 由於詳細信息(application specific information)

(4) 一個或者多個量化表DQT(difine quantization table)

① 量化表長度(quantization table length)

② 量化表數目(quantization table number)

③ 量化表(quantization table)

(5) 幀圖像開始SOF0(Start of Frame)

① 幀開始長度(start of frame length)

② 精度(precision),每個顏色分量每個像素的位數(bits per pixel per color component)

③ 圖像高度(image height)

④ 圖像寬度(image width)

⑤ 顏色分量數(number of color components)

⑥ 對每個顏色分量(for each component)

o        ID

o        垂直方向的樣本因子(vertical sample factor)

o        水平方向的樣本因子(horizontal sample factor)

o        量化表號(quantization table#)

(6) 一個或者多個霍夫曼表DHT(Difine Huffman Table)

① 霍夫曼表的長度(Huffman table length)

② 類型、AC或者DC(Type, AC or DC)

③ 索引(Index)

④ 位表(bits table)

⑤ 值表(value table)

(7) 掃描開始SOS(Start of Scan)

① 掃描開始長度(start of scan length)

② 顏色分量數(number of color components)

③ 每個顏色分量

o        ID

o        交流係數表號(AC table #)

o        直流係數表號(DC table #)

④ 壓縮圖像數據(compressed image data)

(8) 圖像結束EOI(End of Image)

表6-06表示了APP0域的詳細結構。有興趣的讀者可通過UltraEdit或者PC TOOLS等工具軟件打開一個JPG圖像文件,對APP0的結構進行分析和驗證。

表6-06 JFIF格式中APP0域的詳細結構

偏移

長度

內容

塊的名稱

說明

0

2 byte

0xFFD8

(Start of Image,SOI)

圖像開始

2

2 byte

0xFFE0

APP0(JFIF application segment)

JFIF應用數據塊

4

2 bytes

 

length of APP0 block

APP0塊的長度

6

5 bytes

 

"JFIF"+"0"

識別APP0標記

11

1 byte

 

<Major version>

主要版本號(如版本1.02中的1)

12

1 byte

 

<Minor version>

次要版本號(如版本1.02中的02)

13

1 byte

 

<Units for the X
and Y densities>

X和Y的密度單位

units=0:無單位

units=1:點數/英寸

units=2:點數/釐米

14

2 bytes

 

<Xdensity>

水平方向像素密度

16

2 bytes

 

<Ydensity>

垂直方向像素密度

18

1 byte

 

<Xthumbnail>

縮略圖水平像素數目

19

1 byte

 

<Ythumbnail>

縮略圖垂直像素數目

 

3n

 

< Thumbnail RGB bitmap>

縮略RGB位圖(n爲縮略圖的像素數)

 

 

 

Optional JFIF extension APP0 marker segment(s)

任選的JFIF擴展APP0標記段

 

……

 

……

 

 

2 byte

0xFFD9

(EOI) end-of-file

圖像文件結束標記

三、參考:

1)Jpeg 文件概述

2)Exif解析:Exif文件格式描述

3)照片EXIF信息各種軟件摘要

發佈了196 篇原創文章 · 獲贊 34 · 訪問量 50萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章