一、 介紹
TIFF全名Tag Image File Format, 是一種以標記(Tag)為主要結構的位置圖像文件格式。TIFF圖像是靠指針連接來組織數據的,文件頭和數據可以任意數據的存儲。TIFF由四種類型:TIFF-B,二色;TIFF-G,黑白灰度;TIFF-P,帶調色板的彩色圖形;TIFF-R,適合RGB色彩的圖形。 二、 組成 TIFF一般來說由四部分組成:文件頭(IFH)、文件目錄(IFD)、目錄內容(DE)、圖像數據;如下圖,下面具體說明。 三、 具體格式 1. 文件頭部分 TIFF圖像文件開頭部分的8個字節比較固定,包含的信息有: (1)、0-1這兩個字節為標識域,固定的為0x4949或者0x4d4d,分別表示小段字節順序和大端字節順序。 (2)、2-3這兩個字節為TIFF的版本號,一般固定的為0x2a (3)、4-7這四個字節存放圖像文件目錄(IFD)的偏移量,次偏移量是以文件頭開始的。注,只存放單個圖像的TIFF文件只有一個IFD。IFD中存放著與該圖像有關的特征,即標簽(Tag)。 0 2 4 II/MM(表示字節序) | | 文件目錄在整個文件的偏移量,是一個指針,指向IFD的開始部分 |
5 8 注意這里的值不一定就是緊接頭后的0A地址,可以是任意的。 2. 文件目錄部分 TIFF格式的圖像文件目錄(IFD)由三部分組成,包括IFD中域(Tag)的個數,放在前面兩個字節處;域存放具體內容(DE),每個域由12個字節構成,TIFF6.0標準規定每個Tag域要以升序的方式排列;末尾的四個字節是指向下一個IFD的偏移值。 0 2 14 每個項的12個字節,其是連續的,有前兩個字節說明其項的總數。對于不同的TIFF格式文件,這里的不同。 3. 目錄項 每個目錄項(DE)由12個字節組成,格式如下: TAG的值由TIFF標準定義,TIFF 6.0定義了64個Tag類型;不同的TAG表示不同的意思,例如: 1、0x0100表示圖像水平方向上的像素個數(ImageWidth); 2、識別碼0x0101為圖像垂直方向上像素個數(ImageLength); 3、0x0102為每個數據取樣(sample)的位數(BitPerSample),支持CMYK色彩空間的在8-11字節給出數據偏移量,無壓縮格式時,其數據值為0x080808。 4、SamplePerPixel 標志嗎為0x0115,每個像素取樣數。支持CMYK色彩空間的在8-11字節給出數據值為4。 5、RowPerStrip標志嗎為0x0116,每個帶狀數據的圖像行數。等于ImageLength中圖像垂直方向像素的個數,單個TIFF圖像文件只有一個帶狀數據。 6、StripOffsets 0x0111每個帶狀數據在文件的偏移。即圖像數據所在的位置。在CMYK色彩模式下,一個像素用4個字節表示,其順序為C、M、Y、K;RGB彩色模式下一個像素用3個字節表示,順序為R、G、B;灰色圖像用1個字節表示。 7、StripByteCounts 0x0117 每個帶狀數據在文件中所占的字節數,在沒有壓縮的時候,改數值等于圖像寬度和高度相乘的字節數。 8、PhotometricInterPretation0x0106 圖像所采用的色彩系統,8-11字節的數值為0時,是單色或者灰色的圖像,0為白色,數值為1時,是單色或者灰色圖像,1為白色, 數值為2時,圖像數據以RGB方式存儲,數值為5時,圖像數據以CMYK的方式存儲等。 由于顯示器是RGB色彩模式成像的,如果顯示CMYK模式的圖像,還要進行色彩空間的轉換。 R=(255-K)*(255-C)/255 G=(255-K)*(255-M)/255 B=(255-K)*(255-Y)/255 TAG的數據類型表示數據值的類型;例如使用long類型來表示寬度。 數據長度是以數據類型為單位的,真正的數據長度是:數據長度*sizeof(數據類型) 數據值或值的偏移:如果數據長度小于4個字節,一般直接以該字段來表示其值,如果其值大于4個字節,就指定一個文件范圍的偏移地址,從那里開始的“數據長度*sizeof(數據類型)”個字節表示該標志的值。 4. 圖像數據: 緊接上面數據之后就是圖像數據了;圖像數據的存儲形式有不同的形式,有以像素位來存儲的,也有以顏色面來存儲的;具體的存儲方式在目錄項中定義。 四、 一些TAG值 TAG值 | | | | | | | | | | | | BitsPerSample,對于RGB是8,8,8,通過偏移來表示 | | | | | | | | | | | | 每像素的顏色成分,對于RGB這個值一般是3,如果需要其他有ExtraSamples標志 | | | | | | | | | 每個分量(R,G,B)是怎么存儲的,1表示按照RGBRGB的順序來存儲 | | | Xresolution和Yresolution的單位 |
更多的參考TIFF標準 五、 一個TIFF文件格式分析
|