TIFF(Tag Image File Format)是一种包含标签(Tags)的静态图像文件。它的文件由文件头、1个以上的IFD(Image File Directory)及IFD指向的数据块组成。

一、文件头(Header)

文件头通常为8个字节(big TIFF另说),具体如下:

0-1字节;49 49或4D 4D;即II或MM,代表多字节数据存储方式。II=littlele-endian,MM=Big endian。

2-3字节;2A 00 或2B 00;即42或43,代表版本号。42=普通版本,43=big TIFF版本(只讨论42普通版本)。

4-7字节;任意数;代表第一个IFD的偏移地址。有的是08 00 00 00,即IFD紧接其后。

二、IFD的结构

IFD由Tag数量(n)、n个Tags信息块和下一个IFD偏移地址构成。

1.Tag数量

Tags数量为0-1字节;

2.信息块

每个Tag信息块12个字节,共12*n个字节;

0-1字节;Tag标签代码,从0X100开始,到0xFFFF,有基本的Tag,也可自行扩展。

2-3字节;信息保存的数据的类型,值为1-12,表示每个数据的需要字节数。

4-7字节;Tag信息的数据个数;

8-11字节;tag信息的值或保存值的偏移地址;因8-12共四个字节,如果数据个数(4-7字节)*每个数据需要的字节数(2-3字节)>4,8-11字节不能存储完Tag的值,就存储其值的偏移地址,如

Tag代码 数据类型 数据个数 值或地址
0102 0003 00000004 000316A6
BitsPerSample(构成颜色的各要素的bit数) Short(2bytes) 4 偏移地址03 16 A6

3.下一个IFD偏移地址

共4个字节。

三、数据块

数据块包括Tag信息值数据块和图像数据信息块。这两种数据块的地址以及数据类型都在IFD规定。

如上面的BitsPerSample信息。

数据块地址和长度在IFD由111,117定义,如下示例。

Tag代码 数据类型 数据个数 值或地址
111(图像数据偏移地址) 0003 00000001 00000008
117(图像数据字节数) 0004 00000001 00031620

数据块结构以后再详解。

TIFF图像文件(一):文件结构相关推荐

  1. php 处理tiff,TIFF图像文件(五):LZW的PHP应用

    一.要点 1.字典的关键字256表示开始,257表示结束: 2.压缩是针对文件的,9位的压缩码要转成8位ascii便于保存为文件: 3.解压时,将ASCII码转成二进制,恢复成9位压缩码再解压: 4. ...

  2. TIFF图像文件详解

    TIFF图像文件格式详解(1) http://blog.csdn.net/dcraw/article/details/6443537 1 什么是TIFF?  TIFF是Tagged Image Fil ...

  3. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer...

    MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.5 Adding a  raster layer 一.前言 MapServer不仅支持 ...

  4. Windows应用程序文件格式转换控件LEADTOOLS ePrint Professional

    2019独角兽企业重金招聘Python工程师标准>>> LEADTOOLS ePrint Professional控件是一个多功能一体化文件转换解决方案,它可帮助您将任何Window ...

  5. PIE SDK打开栅格数据

    1. 功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联. ...

  6. 计算机视觉结课论文,计算机视觉与图像识别结课论文

    <计算机视觉与图像识别结课论文>由会员分享,可在线阅读,更多相关<计算机视觉与图像识别结课论文(8页珍藏版)>请在人人文库网上搜索. 1.计算机视觉与图像识别结课论文基于C+的 ...

  7. Matplotlib 中文用户指南 2 安装

    安装 原文:Installing 译者:飞龙 协议:CC BY-NC-SA 4.0 有许多安装 matplotlib 的不同方法,最好的方法取决于你使用的操作系统,已经安装的内容以及如何使用它. 为了 ...

  8. CompactExifLib:访问JPEG文件中的EXIF标签

    目录 介绍 背景 演示应用程序 使用代码 读写标签 标签ID和图像文件目录(IFD) 标签类型 整数 数组标签 字符串 有理数 日期和时间 原始数据和字节顺序 移除标签 加载和保存EXIF数据 GPS ...

  9. 常用的文件后缀都有哪些?

    ACA Microsoft的代理使用的角色文档 acf 系统管理配置 acm 音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能 aif 声音文件,支持压缩,可以使用Windo ...

最新文章

  1. NPOI导Excel样式设置
  2. SQL2005 BCP
  3. ASP.NET MVC Beta 新特性之 IValueProvider
  4. linux命令 ps aux | grep xxx详解
  5. Cisco堆叠配置步骤+链路聚合实例
  6. Java类类getGenericSuperclass()方法及示例
  7. mdadm中文man帮助
  8. ORACLE因为字符集不同,进行中文条件查询,查询结果为空
  9. ubuntu 15.10 安装jdk
  10. ~~KMP(数据结构)
  11. 死磕Spring AOP系列2:剖析Bean处理器之BeanNameAutoProxyCreator
  12. 谷歌分析中的营销归因分析功能
  13. Unlocker v4.1.3 VMware 虚拟机 MacOS 系统解锁工具
  14. CMYK to RGB
  15. android 播放pdf文件格式,一个方法告诉你安卓手机如何打开PDF格式文件
  16. IBM笔记本电池保养细则
  17. pure-ftpd 搭建 FTP 服务器
  18. 怎么在地图上标注自己的店铺
  19. dataFrame使用loc根据if条件修改列值
  20. 卡塔尔世界杯门线技术(GOAL LINE TECHNOLOGY)背后的黑科技

热门文章

  1. 软件测试练手项目,可以写进简历里面的(银行:金融:商城:外卖等等)
  2. 什么是Singleton,单例设计模式
  3. 有感于开源软件发布的情怀
  4. android开发avg游戏,【图片】谈谈AVG游戏的Android移植(NScripter与吉里吉里)(转)【ons安卓吧】_百度贴吧...
  5. 使用nextSibling获取checkbox后面的文本内容,并传给后台
  6. 南京邮电大学Java软件开发(混合式)实验2:银行账户管理——面向对象
  7. 尹语堂供应链20220212
  8. C++11中模板类std::enable_shared_from_this的使用
  9. TST5926E无线环境激励实验模态测试分析系统
  10. 软考拿到证书后,可以领取补贴吗?