TIFF图像文件(一):文件结构
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图像文件(一):文件结构相关推荐
- php 处理tiff,TIFF图像文件(五):LZW的PHP应用
一.要点 1.字典的关键字256表示开始,257表示结束: 2.压缩是针对文件的,9位的压缩码要转成8位ascii便于保存为文件: 3.解压时,将ASCII码转成二进制,恢复成9位压缩码再解压: 4. ...
- TIFF图像文件详解
TIFF图像文件格式详解(1) http://blog.csdn.net/dcraw/article/details/6443537 1 什么是TIFF? TIFF是Tagged Image Fil ...
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer...
MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.5 Adding a raster layer 一.前言 MapServer不仅支持 ...
- Windows应用程序文件格式转换控件LEADTOOLS ePrint Professional
2019独角兽企业重金招聘Python工程师标准>>> LEADTOOLS ePrint Professional控件是一个多功能一体化文件转换解决方案,它可帮助您将任何Window ...
- PIE SDK打开栅格数据
1. 功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联. ...
- 计算机视觉结课论文,计算机视觉与图像识别结课论文
<计算机视觉与图像识别结课论文>由会员分享,可在线阅读,更多相关<计算机视觉与图像识别结课论文(8页珍藏版)>请在人人文库网上搜索. 1.计算机视觉与图像识别结课论文基于C+的 ...
- Matplotlib 中文用户指南 2 安装
安装 原文:Installing 译者:飞龙 协议:CC BY-NC-SA 4.0 有许多安装 matplotlib 的不同方法,最好的方法取决于你使用的操作系统,已经安装的内容以及如何使用它. 为了 ...
- CompactExifLib:访问JPEG文件中的EXIF标签
目录 介绍 背景 演示应用程序 使用代码 读写标签 标签ID和图像文件目录(IFD) 标签类型 整数 数组标签 字符串 有理数 日期和时间 原始数据和字节顺序 移除标签 加载和保存EXIF数据 GPS ...
- 常用的文件后缀都有哪些?
ACA Microsoft的代理使用的角色文档 acf 系统管理配置 acm 音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能 aif 声音文件,支持压缩,可以使用Windo ...
最新文章
- NPOI导Excel样式设置
- SQL2005 BCP
- ASP.NET MVC Beta 新特性之 IValueProvider
- linux命令 ps aux | grep xxx详解
- Cisco堆叠配置步骤+链路聚合实例
- Java类类getGenericSuperclass()方法及示例
- mdadm中文man帮助
- ORACLE因为字符集不同,进行中文条件查询,查询结果为空
- ubuntu 15.10 安装jdk
- ~~KMP(数据结构)
- 死磕Spring AOP系列2:剖析Bean处理器之BeanNameAutoProxyCreator
- 谷歌分析中的营销归因分析功能
- Unlocker v4.1.3 VMware 虚拟机 MacOS 系统解锁工具
- CMYK to RGB
- android 播放pdf文件格式,一个方法告诉你安卓手机如何打开PDF格式文件
- IBM笔记本电池保养细则
- pure-ftpd 搭建 FTP 服务器
- 怎么在地图上标注自己的店铺
- dataFrame使用loc根据if条件修改列值
- 卡塔尔世界杯门线技术(GOAL LINE TECHNOLOGY)背后的黑科技
热门文章
- 软件测试练手项目,可以写进简历里面的(银行:金融:商城:外卖等等)
- 什么是Singleton,单例设计模式
- 有感于开源软件发布的情怀
- android开发avg游戏,【图片】谈谈AVG游戏的Android移植(NScripter与吉里吉里)(转)【ons安卓吧】_百度贴吧...
- 使用nextSibling获取checkbox后面的文本内容,并传给后台
- 南京邮电大学Java软件开发(混合式)实验2:银行账户管理——面向对象
- 尹语堂供应链20220212
- C++11中模板类std::enable_shared_from_this的使用
- TST5926E无线环境激励实验模态测试分析系统
- 软考拿到证书后,可以领取补贴吗?