天天看點

tiff和geotiff格式分析

6、tiff檔案的基本格式

TIFF(Tag Image File Format)圖像檔案說明:

TIFF檔案是由許多的标簽(tag)組成,在Adobe的有關tiff6.0的說明中,将(tag)的解釋稱各種标簽所對應的數值,而在檔案中各個标簽的實際入口稱為(field),暫且稱為域。tiff支援黑白、灰階、彩色的圖像格式,同時還可以接受RGB CMYK等色彩系統,同時支援圖像資料的LZW,哈夫曼等壓縮算法或者不壓縮。

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-1IFD中的标簽數目

OFFSET:2-13 IFD中的第一個标簽

OFFSET:14-25IFD中的第二個标簽

.....

OFFSET:2+12*标簽數下一個IFD的(相對于文将)偏移量,在一個TIFF檔案中可以由多個IFD用于存放多個圖像,如果如果該數字為0,表示已經處理完所有的IFD。

标簽說明:一個标簽由連續的12位元組組成

OFFSET:0-1TAG ID标簽所對應的數字編号(tag),用于定義該标簽所存放的"資訊"

OFFSET:2-3TAG INFO DATA TYPE标簽中資料的資料類型

OFFSET:4-7VALUE 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号(十進制)标簽資料類型标簽可能的數值

ImageWidth256SHORT/LONG

ImageLength257SHORT/LONG

Compression259SHORT1(no Compression),2(HuffmanCompression),32773(PackBits Compression)

PhotometricInterpretation262SHORT當Compression=2 0,1(0:在BiLevel/GrayScale圖形中0表示全白1:在BiLevel/GrayScale圖形中0表示全黑,即圖形采用反色顯示)

StripOffsets273SHORT/LONG每個Strip的檔案偏移量

RowsPerStrip278SHORT/LONG每個Strip中的行數

StripByteCounts279SHORT/LONG當采用某種壓縮方式後每個Strip的位元組數

XResolution282RATIONALImageWidth中每ResolutionUnit中的像素數目

YResolution283RATIONALImageLength中每ResolutionUnit中的像素數目

ResolutionUnit296SHORT1(用于非四邊形顯示的圖像),2(英寸),3(厘米)根據ImageWidth及ImageLength用于計算圖像在顯示時的尺寸

以下是一個BiLevel Tiff檔案的例子

偏移量說明數值(HEX)

0000byteorder4d4d

0002420042

00041st IFD offset00000014

IFD:

偏移量說明值(HEX)

0014number of directory entries 000c(IFD中的标簽數目12個)

偏移量标簽說明TagID(HEX)資料類型(HEX)Count(HEX)值偏移量(HEX)說明

0016newsubfile type00fe00040000000100000000

0022imagewidth0100000400000001000007d0圖像寬度2000

002eimagelength010100040000000100000bb8圖像長度3000

003acompression010300030000000180050000資料壓縮由于資料短于四位元組,偏移量中直接為值(左對齊)32773

0046photometricinterpretation010600030000000100010000圖像采用反色顯示

0052stripoffsets01110004000000bc000000b6圖像Strip偏移量0x00B6,共188(0xBC)個Strip

005erowsperstrip011600040000000100000010每Strip中行數16

006astripbytecounts01170003000000bc000003a6每Strip中的位元組數,共188個,偏移量0x03A6

0076xresolution011b00050000000100000696

0082yresolution011b0005000000010000069e

008esoftware013100020000000e000006a6用于标記生成該圖像的軟體,文本類型,偏移量0x6a6,位元組數14

009adatetime0132000200000014000006b6用于标記該圖像的生成日期,文本類型,偏移量0x6b6,位元組數20

00a6nextIFDoffset00000000沒有下一個IFD

值大于4位元組:

偏移量标簽說明:值:說明:

00b6StripOffsetsOffset0,Offset1,...Offset187

03a6StripByteCountsCount0,Count1,...Count187

0696XResolution0000012C00000001每ResolutionUnit中300像素

069eYResolution0000012C00000001每ResolutionUnit中300像素

06a6Software"PageMaker4.0"生成該圖像的軟體名稱,長度應該為字元串長度加NULL結尾應為13注:本例子來自Adobe Tiff Revision 6.0,其中的位元組數為14,可能其中有錯誤

06b6DateTime"1988-02-18 13:59:59"生成該圖像的時間,長度為20位元組

Image Data:

00000700Compressed data for strip 10

xxxxxxxxCompressed data for strip 179

xxxxxxxxCompressed data for strip 53

xxxxxxxxcompressed data for strip 160

.

.

檔案結束

以上例子中的software,datatime為可選标簽,同時各個Strip可以不安順序在檔案中存儲,每個Strip的偏移量必須在檔案中指定,而不能預設認為一個Strip的結尾是下一個Strip的開始,或者Strip是按順序在檔案中存儲的

注:以上的例子中沒有列出ResolutionUnit,可能是Adobe文檔中的錯誤

Bilevel Images中需要的标簽:

TagNameDecimal Hex TypeValue

ImageWidth256 100 short/long

ImageLength257 101 short/long

Compression259 103 short1,2,32773

PhotometricInterpretation262 106 short0,1

StripOffsets273 111 short/long

RowsPerStrip278 116 short/long

StripByteCounts279 117 short/long

XResolution282 11a rational

YResolution283 11b rational

ResolutionUnit296 128 short

GrayScale Image:

灰階圖像是黑白圖像的一般化,灰階圖像需要的标簽基本同上,但是使用者需要修改或者添加以下标簽

Compression=1 or 32773

FieldNameTagIDDataTypeValueDescription

BitPerSample258SHORT4/8the number of bits per component 16 or 256 distinct shades of gray

GrayScale Image所需的标簽名稱:

FieldNameTagID(Decimal)DataTypeValue

ImageWidth256SHORT/LONG

ImageLength257SHORT/LONG

BitsPerSample258SHORT/LONG4/8

Compression259SHORT1/32773

PhotometricInterpretation262SHORT0/1

StripOffsets273SHORT/LONG

RowsPerStrip278SHORT/LONG

StripByteCounts279LONG/SHORT

XResolution282RATIONAL

YResolution283RATIONAL

ResolutionUnit296SHORT1/2/3

Palette-color Images:

調色闆圖形于灰階圖形類似,它每個像素的顔色采用RGB表的查找,需要修改或者添加以下标簽,其他與GrayScale Images類似

PhotometricInterpretation=3(表示該圖像為Palette-color Image)

FieldNameTagIDDataTypeCountValueDescription

ColorMap320SHORT3*(2的BitsPerSample次方)調色闆順序為RGB

Palette-color Image所需的标簽名稱:

FieldNameTagID(Decimal)DataTypeValue

ImageWidth256SHORT/LONG

ImageLength257SHORT/LONG

BitsPerSample258SHORT4/8

Compression259SHORT1/32773

PhotometricInterpretation262SHORT3

StripOffsets273SHORT/LONG

RowsPerStrip278SHORT/LONG

StripByteCounts279SHORT/LONG

XResolution282RATIONAL

YResolution283RATIONAL

ResolutionUnit296SHORT1/2/3

ColorMap320SHORT

RGB Full Color Image:

一個RGB圖像,每個像素由3部分組成,RGB,在圖像中沒有ColorMap标簽,需要修改或者添加以下幾個标簽

BitPerSample=8,8,8

PhotometricInterpretation=2(RGB Image)

FieldNameTagIDDataTypeValueDescription

SamplesPerPixel277SHORT

RGB Image所需的标簽名稱:

FieldNameTagID(Decimal)DataTypeValue

ImageWidth256SHORT/LONG

ImageLength257SHORT/LONG

BitsPerSample258SHORT8,8,8

Compression259SHORT1,32773

PhotometricInterpretation262SHORT2

StripOffsets273SHORT/LONG

SamplesPerPixel277SHORT3 or more

RowsPerStrip278SHORT/LONG

StripByteCounts279SHORT/LONG

XResolution282RATIONAL

YResolution283RATIONAL

ResolutionUnit296SHORT1,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

Type =short

N=3*(2**BitsPerSample)

********************************************************************

Compression資料壓縮方式

Tag=259

Type =short

N=1

DefaultValue=1

Value=1資料沒有壓縮

Value=2采用CCITT Group 31壓縮

Value=3采用CITTGroup 3 Fax T4壓縮

Value=4采用CITTGroup 3 Fax T6壓縮

Value=5LZW壓縮

Value=6JPEG壓縮

Value=32773 PackBits壓縮

********************************************************************

Copyright圖像的版權資訊

Tag =33432

Type=ASCII

********************************************************************

DateTime此圖像生成的日期及時間

Tag =306

Type=ASCII

N=20

********************************************************************

ExtraSamples每個像素的額外組成

Tag =338

Type=SHORT

N=m

Value=0未指定資料

Value=1與Alpha通道有關

Value=2與Alpha通道無關

********************************************************************

FillOrder每位元組的資料,其位的排列方式

Tag =266

Type=SHORT

N=1

Value=1從左到右

Value=2從右到左

********************************************************************

FreeByteCounts每個未使用塊在檔案中的位元組數

Tag =289

Type=LONG

********************************************************************

FreeOffsets每個未使用塊在檔案中的偏移量

Tag =288

Type=LONG

********************************************************************

GrayResponseCurve灰階響應曲線

Tag =291

Type=SHORT

N=2**BitsPerSample

********************************************************************

GrayResponseUnit灰階響應曲線的機關

Tag =290

Type=SHORT

N=1

DefaultValue=2

Value=11/10

Value=21/100

Value=31/1000

Value=41/10000

Value=51/100000

********************************************************************

HostComputer制作此圖像的計算機及其作業系統

Tag =316

Type=ASCII

********************************************************************

ImageDescription

Tag =270

Type=ASCII

********************************************************************

ImageLength圖像的高度(像素為機關)

Tag =257

Type=SHORT/LONG

N=1

********************************************************************

ImageWidth圖像的寬度(像素為機關)

Tag =256

Type=SHORT/LONG

N=1

********************************************************************

Make

Tag =271

Type=ASCII

********************************************************************

MaxSampleValue最大取樣值

Tag =281

Type=SHORT

N=SamplePerPixel

DefaultValue=(2**BitsPerSample)-1

********************************************************************

MinSampleValue最小取樣值

Tag =280

Type=SHORT

N=SamplePerPixel

DefaultValue=0

********************************************************************

Model掃描器的型号

Tag =272

Type=ASCII

N=根據内容來定

********************************************************************

NewSubfileType圖像形态

Tag =254

Type=LONG

N=1

Value=1表示一幅全分辨率的圖像

Value=2表示一幅降低分辨率後的圖像

Value=3表示一幅多頁圖像中的一頁

Value=4表示一幅透明混疊(Transparency mask)圖像

********************************************************************

Orientation圖像行列的編排方向

Tag =274

Type=SHORT

N=1

DefaultValue=1

Value=11行在上方,1列在左方

Value=21行在上方,1列在右方

Value=31行在下方,1列在右方

Value=41行在下方,1列在左方

Value=51行在左方,1列在上方

Value=61行在右方,1列在上方

Value=71行在右方,1列在下方

Value=81行在左方,1列在下方

********************************************************************

PhotometricInterpretation圖像所采用的色彩系統

Tag =262

Type=SHORT

N=1

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

Type=SHORT

N=1

DefaultValue=1

Value=1單平面格式

Value=2多平面格式

********************************************************************

ResolutionUnit圖像的分辨率機關

Tag =296

Type=SHORT

N=1

DefaultValue=2

Value=1沒有指定機關

Value=2英寸為機關

Value=3厘米為機關

********************************************************************

RowsPerStrip每個條狀資料的圖像行數

Tag =278

Type=SHORT/LONG

N=1

********************************************************************

SamplesPerPixel每像素的取樣數

Tag =277

Type=SHORT

N=1

DefaultValue=1

Value=1表示是黑白,灰階或者調色闆圖像

Value=3表示是RGB圖像

********************************************************************

Software生成圖像的軟體名稱及版本号

Tag =305

Type=ASCII

N=根據内容來定

********************************************************************

StripByteCounts每個條狀資料在檔案中的位元組數

Tag =279

Type=SHORT/LONG

N=StripsPerImage如果PlanarConfiguration=1

=StripsPerImage*SamplesPerPixel如果PlanarConfiguration=2

其中StripsPerImage不是标簽(StripsPerImage=(ImageLength+RowPerStrip-1)/RowsPerStrip

********************************************************************

StripOffsets每個條狀資料在檔案中的偏移量

Tag =273

Type=SHORT/LONG

N=StripsPerImage如果PlanarConfiguration=1

=StripsPerImage*SamplesPerPixel如果PlanarConfiguration=2

其中StripsPerImage不是标簽(StripsPerImage=(ImageLength+RowPerStrip-1)/RowsPerStrip

********************************************************************

SubfileType已經由NewSubfileType标簽取代

Tag =255

Type=SHORT

N=1

********************************************************************

Threashholding定義由非黑白圖像變換至黑白圖像的技術

Tag =263

Type=SHORT

N=1

DefaultValue=1

Value=1未采用任何技術

Value=2采用抖色(dither)或半色調(halftone)的技術

Value=3采用誤差擴散(error diffusion)技術

********************************************************************

XResolution機關長度上的圖像水準分辨率

Tag =282

Type=RATIONAL

N=1

********************************************************************

YResolution機關長度上的圖像垂直分辨率

Tag =283

Type=RATIONAL

N=1

7、GeoTIFF的基本格式

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指定的标簽中,第一個元素在标簽中的索引為偏移量。

繼續閱讀