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

转载自:https://blog.csdn.net/iteye_11788/article/details/82549963

You may also like...