zoukankan      html  css  js  c++  java
  • TIFF图像文件格式分析

    一、           介绍

    TIFF全名 tag image file format,是一种基于标志域的图形。

    TIFF图像是靠指针连接来组织数据的,文件头和数据可以任意数据的存储。TIFF由四种类型:TIFF-B,二色;TIFF-G,黑白灰度;TIFF-P,带调色板的彩色图形;TIFF-R,适合RGB色彩的图形。

     

    二、           组成

    TIFF一般来说由四部分组成:文件头、文件目录、目录内容、图像数据;如下图,下面具体说明。

     

    三、           具体格式

    1.        文件头部分

    文件头部分有8个字节,格式为:

    0                                      2                                      4

    II/MM(表示字节序)

    42(版本号)

    文件目录在整个文件的偏移量,是一个指针,指向IFD的开始部分

    5                                                                                                                                                                                                                                                                              8

    注意这里的值不一定就是紧接头后的0A地址,可以是任意的。

     

    2.        文件目录部分

    0                                    2                                      14

    IFD的总项数

    1(12个字节)

    2。。。。(12个字节)

    下一个IFD的开始地址(用于保存多个文件)

    每个项的12个字节,其是连续的,有前两个字节说明其项的总数。对于不同的TIFF格式文件,这里的不同。

     

    3.        目录项

    每个目录项由12个字节组成,格式如下:

     

    TAG(2个字节)

    TAG的数据类型

    数据长度

    数据值或值的偏移(文件范围)

    TAG的值由TIFF标准定义;不同的TAG表示不同的意思,例如0X0100表示图像的宽度。

    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文件格式分析

     

    为了保证图片的宽度,不得不将一些文字折行。

     



  • 相关阅读:
    spring boot多数据源配置示例
    Java 8 Concurrency Tutorial--转
    ibatis annotations 注解方式返回刚插入的自增长主键ID的值--转
    mysql 字符串的处理
    How To Do @Async in Spring--转
    Resolving Problems installing the Java JCE Unlimited Strength Jurisdiction Policy Files package--转
    mysql导入数据,涉及到时间转换,乱码问题解决
    @Query Annotation in Spring Data JPA--转
    hive表信息查询:查看表结构、表操作等--转
    python时间戳
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/2009657.html
Copyright © 2011-2022 走看看