一、 介紹
TIFF全名 tag image file format,是一種基於標誌域的圖形。
TIFF映像是靠指標串連來組織資料的,檔案頭和資料可以任意資料的儲存。TIFF由四種類型:TIFF-B,二色;TIFF-G,黑白灰階;TIFF-P,帶調色盤的彩色圖形;TIFF-R,適合RGB色彩的圖形。
二、 組成
TIFF一般來說由四部分組成:檔案頭、檔案目錄、目錄內容、映像資料;如,下面具體說明。
三、 具體格式1. 檔案頭部分
檔案頭部分有8個位元組,格式為:
0 2 4
|
II/MM(表示位元組序) |
42(版本號碼) |
|
檔案目錄在整個檔案的位移量,是一個指標,指向IFD的開始部分 |
5 8
注意這裡的值不一定就是緊接頭後的0A地址,可以是任意的。
2. 檔案目錄部分
0 2 14
|
IFD的總項數 |
項1(12個位元組) |
|
項2。。。。(12個位元組) |
|
下一個IFD的開始地址(用於儲存多個檔案) |
每個項的12個位元組,其是連續的,有前兩個位元組說明其項的總數。對於不同的TIFF格式檔案,這裡的不同。
3. 目錄項
每個目錄項由12個位元組組成,格式如下:
|
TAG(2個位元組) |
TAG的資料類型 |
|
資料長度 |
|
資料值或值的位移(檔案範圍) |
TAG的值由TIFF標準定義;不同的TAG表示不同的意思,例如0X0100表示映像的寬度。
TAG的資料類型表示資料值的類型;例如使用long類型來表示寬度。
資料長度是以資料類型為單位的,真正的資料長度是:資料長度*sizeof(資料類型)
資料值或值的位移:如果資料長度小於4個位元組,一般直接以該欄位來表示其值,如果其值大於4個位元組,就指定一個檔案範圍的位移地址,從那裡開始的“資料長度*sizeof(資料類型)”個位元組表示該標誌的值。
4. 映像資料:
緊接上面資料之後就是映像資料了;映像資料的儲存形式有不同的形式,有以像素位來儲存的,也有以顏色面來儲存的;具體的儲存方式在目錄項中定義。
四、 一些TAG值
|
TAG值 |
說明 |
|
十進位 |
16進位 |
|
256 |
100 |
映像寬度 |
|
257 |
101 |
映像高度 |
|
258 |
102 |
BitsPerSample,對於RGB是8,8,8,通過位移來表示 |
|
259 |
103 |
壓縮方式(1/2/32773),1為不壓縮 |
|
262 |
106 |
光度滴定,對於RGB圖,該值是2 |
|
273 |
111 |
帶的位移,每個帶是不同的 |
|
277 |
115 |
每像素的顏色成分,對於RGB這個值一般是3,如果需要其他有ExtraSamples標誌 |
|
278 |
116 |
每帶的行數 |
|
279 |
117 |
每帶中壓縮之後的資料位元組常長度 |
|
284 |
11C |
每個分量(R,G,B)是怎麼儲存的,1表示按照RGBRGB的順序來儲存 |
|
296 |
128 |
Xresolution和Yresolution的單位 |
更多的參考TIFF標準
五、 一個TIFF檔案格式分析
為了保證圖片的寬度,不得不將一些文字折行。