tif格式详解.docx
《tif格式详解.docx》由会员分享,可在线阅读,更多相关《tif格式详解.docx(21页珍藏版)》请在冰点文库上搜索。
tif格式详解
tif格式详解
TIFF(TagImageFileFormat)图像文件说明:
TIFF文件是由许多的标签(tag)组成,在Adobe的有关tiff6.0的说明中,将(tag)的解释称各种标签所对应的数值,而在文件中各个标签的实际入口称为(field),暂且称为域。
tiff支持黑白、灰度、彩色的图像格式,同时还可以接受RGBCMYK等色彩系统,同时支持图像数据的LZW,哈夫曼等压缩算法或者不压缩。
TIFF文件分为文件头和IFD两部分,一个IFD中存储了一幅图像的信息,IFD可以由许多标签组成。
在TIFF6.0文件中,规定所有的标签必须以升序排列,通过这些标签信息,来处理文件中的图像数据。
TIFF文件头说明:
TIFF的文件头有8字节
0-1规定为'II'或者'MM'Intel/Mortorola类型的字节顺序
2-3TIFF文件的版本,为与以前的兼容,为42
4-7TIFF文件的第一个IFD在文件中的偏移量,肯定大于8
IFD说明:
IFD是由连续的标签组成
OFFSET:
0-1IFD中的标签数目
OFFSET:
2-13IFD中的第一个标签
OFFSET:
14-25IFD中的第二个标签
.....
OFFSET:
2+12*标签数下一个IFD的(相对于文将)偏移量,在一个TIFF文件中可以由多个IFD用于存放多个图像,如果如果该数字为0,表示已经处理完所有的IFD。
标签说明:
一个标签由连续的12字节组成
OFFSET:
0-1TAGID标签所对应的数字编号(tag),用于定义该标签所存放的"信息"
OFFSET:
2-3TAGINFODATATYPE标签中数据的数据类型
OFFSET:
4-7VALUECOUNT2-3中说明的数据类型的数目
OFFSET:
8-11VALUEOFFSET相对于文件的该标签值的偏移量,必须开始于"字"边界,为了节省空间,如果该标签的数据的长度小于等于四个字节,在VALUEOFFSET中直接存储(小于四字节数据左对齐)该标签的值而不是在文件中的偏移量。
以下列出了标签中的数据的可能的数据类型
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中的标签种类有很多,按大类可以BASELINETIFF标签和TIFFEXTENSIONS标签
在以前版本的TIFF文当中将TIFF文件分为
BASELINETIFF:
在以前版本中,BASELINETIFF分为三种格式:
(BiLevelImages)tiffclassbimage,(GrayScaleImages)tiffclassGimage,(Palette-ColorImages)classPimage,(rgbimage)tiffclassrimages
1.BiLevelImages所用到的标签
标签名标签的ID号(十进制)标签数据类型标签可能的数值
ImageWidth256SHORT/LONG
ImageLength257SHORT/LONG
Compression259SHORT1(noCompression),2(HuffmanCompression),32773(PackBitsCompression)
PhotometricInterpretation262SHORT当Compression=20,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用于计算图像在显示时的尺寸
以下是一个BiLevelTiff文件的例子
偏移量说明数值(HEX)
0000byteorder4d4d
0002420042
00041stIFDoffset00000014
IFD:
偏移量说明值(HEX)
0014numberofdirectoryentries000c(IFD中的标签数目12个)
偏移量标签说明TagID(HEX)数据类型(HEX)Count(HEX)值偏移量(HEX)说明
0016newsubfiletype00fe00040000000100000000
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注:
本例子来自AdobeTiffRevision6.0,其中的字节数为14,可能其中有错误
06b6DateTime"1988-02-1813:
59:
59"生成该图像的时间,长度为20字节
ImageData:
00000700Compresseddataforstrip10
xxxxxxxxCompresseddataforstrip179
xxxxxxxxCompresseddataforstrip53
xxxxxxxxcompresseddataforstrip160
.
.
文件结束
以上例子中的software,datatime为可选标签,同时各个Strip可以不安顺序在文件中存储,每个Strip的偏移量必须在文件中指定,而不能缺省认为一个Strip的结尾是下一个Strip的开始,或者Strip是按顺序在文件中存储的
注:
以上的例子中没有列出ResolutionUnit,可能是Adobe文档中的错误
BilevelImages中需要的标签:
TagNameDecimalHexTypeValue
Ima
geWidth256100short/long
ImageLength257101short/long
Compression259103short1,2,32773
PhotometricInterpretation262106short0,1
StripOffsets273111short/long
RowsPerStrip278116short/long
StripByteCounts279117short/long
XResolution28211arational
YResolution28311brational
ResolutionUnit296128short
GrayScaleImage:
灰度图像是黑白图像的一般化,灰度图像需要的标签基本同上,但是用户需要修改或者添加以下标签
Compression=1or32773
FieldNameTagIDDataTypeValueDescription
BitPerSample258SHORT4/8thenumberofbitspercomponent16or256distinctshadesofgray
GrayScaleImage所需的标签名称:
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-colorImages:
调色板图形于灰度图形类似,它每个像素的颜色采用RGB表的查找,需要修改或者添加以下标签,其他与GrayScaleImages类似
PhotometricInterpretation=3(表示该图像为Palette-colorImage)
FieldNameTagIDDataTypeCountValueDescription
ColorMap320SHORT3*(2的BitsPerSample次方)调色板顺序为RGB
Palette-colorImage所需的标签名称:
FieldNameTagID(Decimal)DataTypeValue
ImageWidth256SHORT/LONG
ImageLength257SHORT/LONG
BitsPerSample258SHORT4/8
Compression259SHORT1/32773
PhotometricInterpretation262SHORT3
StripOffsets273SHORT/LONG
RowsPerStrip278SHORT/LONG
StripByteCounts279SHORT/LONG
XResolution282RATIONAL
YResolution283RATIONAL
ResolutionUnit296SHORT1/2/3
ColorMap320SHORT
RGBFullColorImage:
一个RGB图像,每个像素由3部分组成,RGB,在图像中没有ColorMap标签,需要修改或者添加以下几个标签
BitPerSample=8,8,8
PhotometricInterpretation=2(RGBImage)
FieldNameTagIDDataTypeValueDescription
SamplesPerPixel277SHORT
RGBImage所需的标签名称:
FieldNameTagID(Decimal)DataTypeValue
ImageWidth256SHORT/LONG
ImageLength257SHORT/LONG
BitsPerSample258SHORT8,8,8
Compression259SHORT1,32773
PhotometricInterpretation262SHORT2
StripOffsets273SHORT/LONG
SamplesPerPixel277SHORT3ormore
RowsPerStrip278SHORT/LONG
StripByteCounts279SHORT/LONG
XResolution282RATIONAL
YResolution283RATIONAL
ResolutionUnit296SHORT1,2,3
BaselineTiff文件的附加要求:
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采用CCITTGroup31压缩
Value=3采用CITTGroup3FaxT4压缩
Value=4采用CITTGroup3FaxT6压缩
Value=5LZW压缩
Value=6JPEG压缩
Value=32773PackBits压缩
********************************************************************
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表示一幅透明混迭(Transparencymask)图像
********************************************************************
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列在上方