找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3842|回复: 0
打印 上一主题 下一主题
收起左侧

CMYK图像格式的分析读取

[复制链接]
跳转到指定楼层
楼主
ID:77367 发表于 2015-4-18 20:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、          介绍

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(表示字节序)
  
42(版本号)
文件目录在整个文件的偏移量,是一个指针,指向IFD的开始部分
5                                                                                                                                           8
注意这里的值不一定就是紧接头后的0A地址,可以是任意的。
2.       文件目录部分
TIFF格式的图像文件目录(IFD)由三部分组成,包括IFD中域(Tag)的个数,放在前面两个字节处;域存放具体内容(DE),每个域由12个字节构成,TIFF6.0标准规定每个Tag域要以升序的方式排列;末尾的四个字节是指向下一个IFD的偏移值。
0             2                        14
  
IFD的总项数
  
项1(12个字节)
项2。。。。(12个字节)
下一个IFD的开始地址(用于保存多个文件)
每个项的12个字节,其是连续的,有前两个字节说明其项的总数。对于不同的TIFF格式文件,这里的不同。
3.        目录项
每个目录项(DE)由12个字节组成,格式如下:
  
TAG(0-1字节)
  
TAG的数据类型(2-3字节)
数据长度 (4-7字节)
数据值或值的偏移(文件范围)(8-11字节)
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值
  
说明
十进制
16进制
256
100
图像宽度
257
101
图像高度
258
102
BitsPerSample,对于RGB是8,8,8,通过偏移来表示
259
103
压缩方式(1/2/32773),1为不压缩
262
106
光度滴定,对于RGB图,该值是2
273
111
带的偏移,每个带是不同的
277
115
每像素的颜色成分,对于RGB这个值一般是3,如果需要其他有ExtraSamples标志
278
116
每带的行数
279
117
每带中压缩之后的数据字节常长度
284
11C
每个分量(R,G,B)是怎么存储的,1表示按照RGBRGB的顺序来存储
296
128
Xresolution和Yresolution的单位
更多的参考TIFF标准
五、           一个TIFF文件格式分析





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表