TIFF(Tag Image File Format) 圖像檔案說明:
TIFF 檔案分為檔案頭和 IFD 兩部分,一個 IFD 中存儲了一幅圖像的資訊, IFD 可以由許多标簽組成。在 TIFF6.0 檔案中,規定所有的标簽必須以升序排列,通過這些标簽資訊,來處理檔案中的圖像資料。
TIFF 檔案頭說明:
TIFF 的檔案頭有 8 位元組
0-1 規定為 "II" 或者 "MM" Intel /Mortorola 類型的位元組順序
2-3 TIFF 檔案的版本,為與以前的相容,為 42
4-7 TIFF 檔案的第一個 IFD 在檔案中的偏移量,肯定大于 8
IFD 說明: IFD 是由連續的标簽組成
OFFSET:0-1 IFD 中的标簽數目
OFFSET:2-13 IFD 中的第一個标簽
OFFSET:14-25 IFD 中的第二個标簽
.....
OFFSET:2+12* 标簽數 下一個 IFD 的 ( 相對于文将 ) 偏移量,在一個 TIFF 檔案中可以由多個 IFD 用于存放多個圖像,如果如果該數字為 0 ,表示已經處理完所有的 IFD 。
标簽說明:一個标簽由連續的 12 位元組組成
OFFSET:0-1 TAG ID 标簽所對應的數字編号 (tag) ,用于定義該标簽所存放的 " 資訊 "
OFFSET:2-3 TAG INFO DATA TYPE 标簽中資料的資料類型
OFFSET:4-7 VALUE COUNT 2-3 中說明的資料類型的數目
OFFSET:8-11 VALUE OFFSET 相對于檔案的該标簽值的偏移量 , 必須開始于 " 字 " 邊界 , 為了節省空間,如果該标簽的資料的長度小于等于四個位元組,在 VALUE OFFSET 中直接存儲 ( 小于四位元組資料左對齊 ) 該标簽的值而不是在檔案中的偏移量。
以下列出了标簽中的資料的可能的資料類型
1 = BYTE
2 = ASCII
3 = SHORT
4 = LONG
5 = RATIONAL
6 = SBYTE
7 = UNDEFINED
8 = SSHORT
9 = SLONG
10= SRATIONAL
11= FLOAT
12= DOUBLE
TIFF 中的标簽種類有很多,按大類可以 BASELINE TIFF 标簽 和 TIFF EXTENSIONS 标簽
在以前版本的 TIFF 文當中将 TIFF 檔案分為
BASELINE TIFF:
在以前版本中, BASELINE TIFF 分為三種格式:
(BiLevel Images)tiff class b image , (GrayScale Images)tiff class G image,(Palette-Color Images)class P image,(rgb image)tiff class r images
1.BiLevel Images 所用到的标簽
标簽名 标簽的 ID 号 ( 十進制 ) 标簽資料類型 标簽可能的數值
ImageWidth 256 SHORT/LONG
ImageLength 257 SHORT/LONG
Compression 259 SHORT 1(no Compression),2(HuffmanCompression),32773(PackBits Compression)
PhotometricInterpretation 262 SHORT 當 Compression=2 0,1(0: 在 BiLevel/GrayScale 圖形中 0 表示全白 1: 在 BiLevel/GrayScale 圖形中 0 表示全黑 , 即圖形采用反色顯示 )
StripOffsets 273 SHORT/LONG 每個 Strip 的檔案偏移量
RowsPerStrip 278 SHORT/LONG 每個 Strip 中的行數
StripByteCounts 279 SHORT/LONG 當采用某種壓縮方式後每個 Strip 的位元組數
XResolution 282 RATIONAL ImageWidth 中每 ResolutionUnit 中的像素數目
YResolution 283 RATIONAL ImageLength 中每 ResolutionUnit 中的像素數目
ResolutionUnit 296 SHORT 1( 用于非四邊形顯示的圖像 ),2( 英寸 ),3( 厘米 ) 根據 ImageWidth 及 ImageLength 用于計算圖像在顯示時的尺寸
以下是一個 BiLevel Tiff 檔案的例子
偏移量 說明 數值 (HEX)
0000 byteorder 4d4d
0002 42 0042
0004 1st IFD offset 00000014
IFD:
偏移量 說明 值 (HEX)
0014 number of directory entries 000c(IFD 中的标簽數目 12 個 )
偏移量 标簽說明 TagID(HEX) 資料類型 (HEX) Count(HEX) 值偏移量 (HEX) 說明
0016 newsubfile type 00fe 0004 00000001 00000000
0022 imagewidth 0100 0004 00000001 000007d0 圖像寬度 2000
002e imagelength 0101 0004 00000001 00000bb8 圖像長度 3000
003a compression 0103 0003 00000001 80050000 資料壓縮由于資料短于四位元組,偏移量中直接為值 ( 左對齊 )32773
0046 photometricinterpretation 0106 0003 00000001 00010000 圖像采用反色顯示
0052 stripoffsets 0111 0004 000000bc 000000b6 圖像 Strip 偏移量 0x00B6, 共 188(0xBC) 個 Strip
005e rowsperstrip 0116 0004 00000001 00000010 每 Strip 中行數 16
006a stripbytecounts 0117 0003 000000bc 000003a6 每 Strip 中的位元組數 , 共 188 個,偏移量 0x03A6
0076 xresolution 011b 0005 00000001 00000696
0082 yresolution 011b 0005 00000001 0000069e
008e software 0131 0002 0000000e 000006a6 用于标記生成該圖像的軟體 , 文本類型 , 偏移量 0x6a6, 位元組數 14
009a datetime 0132 0002 00000014 000006b6 用于标記該圖像的生成日期 , 文本類型 , 偏移量 0x6b6, 位元組數 20
00a6 nextIFDoffset 00000000 沒有下一個 IFD
值大于 4 位元組:
偏移量 标簽說明: 值 : 說明 :
00b6 StripOffsets Offset0,Offset1,...Offset187
03a6 StripByteCounts Count0,Count1,...Count187
0696 XResolution 0000012C00000001 每 ResolutionUnit 中 300 像素
069e YResolution 0000012C00000001 每 ResolutionUnit 中 300 像素
06a6 Software "PageMaker4.0" 生成該圖像的軟體名稱,長度應該為字元串長度加 NULL 結尾 應為 13 注: 本例子來自 Adobe Tiff Revision 6.0, 其中的位元組數為 14, 可能其中有錯誤
06b6 DateTime "1988-02-18 13:59:59" 生成該圖像的時間,長度為 20 位元組
Image Data:
00000700 Compressed data for strip 10
xxxxxxxx Compressed data for strip 179
xxxxxxxx Compressed data for strip 53
xxxxxxxx compressed data for strip 160
.
檔案結束
以上例子中的 software,datatime 為可選标簽,同時各個 Strip 可以不安順序在檔案中存儲,每個 Strip 的偏移量必須在檔案中指定,而不能預設認為一個 Strip 的結尾是下一個 Strip 的開始,或者 Strip 是按順序在檔案中存儲的
注:以上的例子中沒有列出 ResolutionUnit, 可能是 Adobe 文檔中的錯誤
Bilevel Images 中需要的标簽:
TagName Decimal Hex Type Value
ImageWidth 256 100 short/long
ImageLength 257 101 short/long
Compression 259 103 short 1,2,32773
PhotometricInterpretation 262 106 short 0,1
StripOffsets 273 111 short/long
RowsPerStrip 278 116 short/long
StripByteCounts 279 117 short/long
XResolution 282 11a rational
YResolution 283 11b rational
ResolutionUnit 296 128 short
GrayScale Image:
灰階圖像是黑白圖像的一般化,灰階圖像需要的标簽基本同上,但是使用者需要修改或者添加以下标簽
Compression=1 or 32773
FieldName TagID DataType Value Description
BitPerSample 258 SHORT 4/8 the number of bits per component 16 or 256 distinct shades of gray
GrayScale Image 所需的标簽名稱:
FieldName TagID(Decimal) DataType Value
ImageLength 257 SHORT/LONG
BitsPerSample 258 SHORT/LONG 4/8
Compression 259 SHORT 1/32773
PhotometricInterpretation 262 SHORT 0/1
StripOffsets 273 SHORT/LONG
RowsPerStrip 278 SHORT/LONG
StripByteCounts 279 LONG/SHORT
XResolution 282 RATIONAL
YResolution 283 RATIONAL
ResolutionUnit 296 SHORT 1/2/3
Palette-color Images:
調色闆圖形于灰階圖形類似,它每個像素的顔色采用 RGB 表的查找,需要修改或者添加以下标簽,其他與 GrayScale Images 類似
PhotometricInterpretation=3 ( 表示該圖像為 Palette-color Image)
FieldName TagID DataType Count Value Description
ColorMap 320 SHORT 3*(2 的 BitsPerSample 次方 ) 調色闆順序為 RGB
Palette-color Image 所需的标簽名稱:
BitsPerSample 258 SHORT 4/8
PhotometricInterpretation 262 SHORT 3
RowsPerStrip 278 SHORT/LONG
StripByteCounts 279 SHORT/LONG
ColorMap 320 SHORT
RGB Full Color Image:
一個 RGB 圖像,每個像素由 3 部分組成, RGB, 在圖像中沒有 ColorMap 标簽,需要修改或者添加以下幾個标簽
BitPerSample=8,8,8
PhotometricInterpretation=2 (RGB Image)
SamplesPerPixel 277 SHORT
RGB Image 所需的标簽名稱:
BitsPerSample 258 SHORT 8,8,8
Compression 259 SHORT 1,32773
PhotometricInterpretation 262 SHORT 2
SamplesPerPixel 277 SHORT 3 or more
ResolutionUnit 296 SHORT 1,2,3
Baseline Tiff 檔案的附加要求:
MM / II 位元組順序的處理,一檔案多圖像的處理。同時有些标簽需要注意的是:
ImageWidth,ImageLength 标簽資料類型可以為 SHORT/LONG ,程式必須處理出現圖像尺寸過大的情況 .
同時對于某些标簽可以同時為 SHORT/LONG, 在程式中需要對這些标簽進行正确的處理
Tiff 檔案基本标簽詳細說明:
以下标簽按字母順序說明:
********************************************************************
Artist 圖像的作者
Tag = 315
Type = ASCII
BitsPerSample 每個資料的位數
Tag = 258
Type = short
N = SamplesPerPixel
DefaultValue=1
Value= 位數 SamplesPerPixel<=2
Value= 位數的偏移量 SamplesPerPixel>2
ColorMap 調色闆資料
Tag = 320
N = 3*(2**BitsPerSample)
Compression 資料壓縮方式
Tag = 259
N=1
Value=1 資料沒有壓縮
Value=2 采用 CCITT Group 31 壓縮
Value=3 采用 CITT Group 3 Fax T4 壓縮
Value=4 采用 CITT Group 3 Fax T6 壓縮
Value=5 LZW 壓縮
Value=6 JPEG 壓縮
Value=32773 PackBits 壓縮
Copyright 圖像的版權資訊
Tag = 33432
Type = ASCII
DateTime 此圖像生成的日期及時間
Tag = 306
N = 20
ExtraSamples 每個像素的額外組成
Tag = 338
Type = SHORT
N = m
Value=0 未指定資料
Value=1 與 Alpha 通道有關
Value=2 與 Alpha 通道無關
FillOrder 每位元組的資料,其位的排列方式
Tag = 266
N = 1
Value=1 從左到右
Value=2 從右到左
FreeByteCounts 每個未使用塊在檔案中的位元組數
Tag = 289
Type = LONG
FreeOffsets 每個未使用塊在檔案中的偏移量
Tag = 288
GrayResponseCurve 灰階響應曲線
Tag = 291
N = 2**BitsPerSample
GrayResponseUnit 灰階響應曲線的機關
Tag = 290
DefaultValue=2
Value=1 1/10
Value=2 1/100
Value=3 1/1000
Value=4 1/10000
Value=5 1/100000
Tag = 316
ImageDescription
Tag = 270
ImageLength 圖像的高度 ( 像素為機關 )
Tag = 257
Type = SHORT/LONG
ImageWidth 圖像的寬度 ( 像素為機關 )
Tag = 256
Make
Tag = 271
MaxSampleValue 最大取樣值
Tag = 281
N = SamplePerPixel
DefaultValue=(2**BitsPerSample)-1
MinSampleValue 最小取樣值
Tag = 280
DefaultValue=0
Model 掃描器的型号
Tag = 272
N = 根據内容來定
NewSubfileType 圖像形态
Tag = 254
Value=1 表示一幅全分辨率的圖像
Value=2 表示一幅降低分辨率後的圖像
Value=3 表示一幅多頁圖像中的一頁
Value=4 表示一幅透明混疊 (Transparency mask) 圖像
Orientation 圖像行列的編排方向
Tag = 274
Value=1 1 行在上方, 1 列在左方
Value=2 1 行在上方, 1 列在右方
Value=3 1 行在下方, 1 列在右方
Value=4 1 行在下方, 1 列在左方
Value=5 1 行在左方, 1 列在上方
Value=6 1 行在右方, 1 列在上方
Value=7 1 行在右方, 1 列在下方
Value=8 1 行在左方, 1 列在下方
PhotometricInterpretation 圖像所采用的色彩系統
Tag = 262
Value=0 對黑白及灰階圖像而言, 0 為白色
Value=1 對黑白及灰階圖像而言, 0 為黑色
Value=2 圖像資料以 R,G,B 的方式存儲
Value=3 圖像資料采用調色闆索引
Value=4 單色的透明混疊圖像
Value=5 圖像資料以 C,M,Y,K 的方式存儲
Value=6 圖像資料以 Y,Cb,Cr 的方式存儲
Value=8 圖像以 L*,a*,b* 的方式存儲
PlanarConfiguration 圖像資料的平面排列方式
Tag = 284
Value=1 單平面格式
Value=2 多平面格式
ResolutionUnit 圖像的分辨率機關
Tag = 296
Value=1 沒有指定機關
Value=2 英寸為機關
Value=3 厘米為機關
RowsPerStrip 每個條狀資料的圖像行數
Tag = 278
SamplesPerPixel 每像素的取樣數
Tag = 277
Value=1 表示是黑白,灰階或者調色闆圖像
Value=3 表示是 RGB 圖像
Software 生成圖像的軟體名稱及版本号
Tag = 305
StripByteCounts 每個條狀資料在檔案中的位元組數
Tag = 279
Type = SHORT/LONG
N = StripsPerImage 如果 PlanarConfiguration=1
=StripsPerImage*SamplesPerPixel 如果 PlanarConfiguration=2
其中 StripsPerImage 不是标簽 (StripsPerImage=(ImageLength+RowPerStrip-1)/RowsPerStrip
StripOffsets 每個條狀資料在檔案中的偏移量
Tag = 273
SubfileType 已經由 NewSubfileType 标簽取代
Tag = 255
Threashholding 定義由非黑白圖像變換至黑白圖像的技術
Tag = 263
Value=1 未采用任何技術
Value=2 采用抖色 (dither) 或半色調 (halftone) 的技術
Value=3 采用誤差擴散 (error diffusion) 技術
XResolution 機關長度上的圖像水準分辨率
Tag = 282
Type = RATIONAL
YResolution 機關長度上的圖像垂直分辨率
Tag = 283
GeoTIFF 支援三種坐标空間 : 栅格空間 (Raster Space) 、裝置空間 (Device Space) 和模型空間 (Model Space) 。栅格空間是存儲圖像的行列号的坐标系統。它有 2 種形式 : 一是 PixelIs-Area 型 ( 圖 1( a) ) , 主要用于非 DEM 的資料 ; 二是 PixelIsPoint 型 ( 圖 1( b) ) , 主要用于 DEM 。裝置空間是使用 TIFF 格式中定義的 6 個基本 Tag 來描述圖像的分辨率機關及圖像定位。模型空間是 GeoTIFF 圖像的栅格坐标所對應的實際地圖的經緯度坐标或直角坐标。假設已知栅格空間 n 個點的栅格坐标和在模型空間中對應的 n 個點的模型坐标 , 僅憑這些資訊 , 不可能建立兩個坐标空間的對應關系 , 因為兩者之間的對應關系是非線性的 , 無法用線性變換矩陣表示。
各個地理标簽的具體含義如下 :
( 1)ModelPixelScaleTag( 像元比例 ) : 存放着圖像中的某一點在栅格空間中的坐标與在模型空間中的坐标的縮放比例。
( 2)ModelTiepointTag( 控制點 ) : 圖像中栅格坐标與其對應的模型坐标形成的坐标控制點對。
( 3)ModelTransformationTag( 變換矩陣 ) : 含有 16 個雙精度 ( 4)GeoDoubleParamsTag( 雙精度參數 ) : 代表 GeoTIFF 定義的一種資料類型 , 用來存儲雙精度類型的地理鍵 (GeoKeys) 。
( 5)GeoAsciiParamsTag(ASCII 參數 ) : 存儲字元型的地理鍵 (GeoKey) 值 , 儲存字元型的地理鍵 (GeoKeys) 。
( 6)GeoKeyDirectoryTag( 地理資訊目錄 ) : 是 6 個地理标簽中最重要、最複雜的一個 , 可分為頭和記錄兩部分 : 頭部的結構為 Header={ 目錄版本号 , 修訂版本号 , 副版本号 , 地理鍵的個數 }; 每條記錄的結構為 KeyEntry={ 地理鍵 ID, 存放位置 , 元素的個數 , 值 / 索引 } 。 ID 号唯一辨別了地理鍵 , 存放位置表示地理鍵存放在哪個标簽中 ( 主要指 GeoDoubleParamsTag 和 GeoAscii-ParamsTag) 。如果值為 0 表示該鍵為短整型、個數為 1 則它的值就儲存在記錄中。否則 , 其類型由 TIFFTagLocation 暗指 , 值即存放在 TIFFTagLocation 指定的标簽中 , 第一個元素在标簽中的索引為偏移量。
沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的架構所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如别人所關心你的。理想的騰飛與實作,沒有别人的支援與幫助,是萬萬不能的。
本文轉自wenglabs部落格園部落格,原文連結:http://www.cnblogs.com/arxive/p/6746570.html,如需轉載請自行聯系原作者