标题: CMYK图像格式的分析读取 [打印本页]
作者: bibi 时间: 2015-4-18 20:30
标题: CMYK图像格式的分析读取
一、 介绍
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文件格式分析
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |