【图像处理】tiff格式介绍

一、TIFF 文件格式介绍

TIFF(Tagged Image File Format)是一种灵活的、适用于多种应用程序的图像存储格式。它不仅能描述扫描仪、图像采集卡及各类图像软件产生的图像数据,还通过统一的图像描述方式,为不同设备间的图像数据交换提供了便利。TIFF 定义了丰富的图像描述字段,但并非所有字段都是必需的,既适配复杂设备产生的图像,也能满足简单设备的图像存储需求。

二、TIFF 文件结构

TIFF 文件主要由三部分组成:文件头(IFH, Image File Header)文件目录(IFD, Image File Directory)图像数据(Image Data),各部分分工明确、有机结合。

2.1 文件头(IFH)

  • 大小:固定 8 个字节
  • 核心作用:标识文件存储方式、验证文件类型、定位文件目录(IFD)位置
  • 详细内容
字节范围 内容说明
0~1 字节 存储标识 IIMM: - II:小端存储(低位字节存低地址,高位字节存高地址) - MM:大端存储(低位字节存高地址,高位字节存低地址)
2~3 字节 固定值 42(十进制),用于校验文件是否为 TIFF 格式
4~7 字节 IFD 地址偏移量:指向 IFD 在文件中的存储位置,便于快速定位

2.2 文件目录(IFD)

  • 核心作用:通过一系列字段(field entries)描述图像属性(如图像宽高、分辨率、压缩方式等)
  • 结构细节
字节范围 内容说明
0~1 字节 字段数量:表示用于描述图像的属性种类数,支持用户自行扩展
后续 N×12 字节 每个属性占 12 字节,具体结构如下: - 0~1 字节:属性标签(Tag),标识字段类型(如宽度、高度、分辨率等) - 2~3 字节:数据类型(Type),如短整型(short)、长整型(long)、有理数型(rational)等 - 4~7 字节:数据个数(Count),表示该字段包含的数值数量 - 8~11 字节:属性值(Value/Offset),可能是直接存储的数值,也可能是指向数值存储位置的地址偏移量
最后 4 字节 下一个 IFD 地址:若文件包含多张图像,指向后续 IFD 位置;仅单张图像时,值为 0

2.3 图像数据(Image Data)

  • 存储位置:无固定位置,可位于 IFH 与 IFD 之间,也可在 IFD 之后;支持连续存储或分散存储
  • 存储形式:可压缩或未压缩,压缩方式由 IFD 中的相关字段指定

三、TIFF 内容示意图说明

3.1 结构关系示意


  • IFH 固定位于文件开头,通过偏移量直接关联 IFD;
  • IFD 中的每个字段通过标签和数据类型,精准描述图像的一项属性;
  • 图像数据与 IFD 通过字段中的偏移量建立关联,无论存储位置如何,都能被准确读取。

3.2 具体示例示意

假设某单图像 TIFF 文件的核心结构分布:

  1. 0~7 字节(IFH):II 42 00 00 00 14(小端存储,IFD 偏移量为 20 字节)
  2. 20~31 字节(IFD):00 05 ...(包含 5 个图像属性字段)
    • 字段 1(12 字节):标签 0100(图像宽度)、数据类型 SHORT、数据个数 1、值 03E8(1000 像素)
    • 字段 2(12 字节):标签 0101(图像高度)、数据类型 SHORT、数据个数 1、值 0258(600 像素)
    • 其余 3 个字段:分别描述分辨率、压缩方式、像素格式
  3. 后续字节(图像数据):未压缩的 RGB 像素数据,按 IFD 字段定义的格式存储

四、总结

TIFF 文件格式的核心优势在于 灵活性与扩展性

  • 支持大端/小端两种存储方式,适配不同硬件架构;
  • 图像描述字段可按需选择,既满足简单图像的轻量化存储,也能承载复杂图像的详细属性;
  • 支持多种压缩方式和自定义字段扩展,广泛适配扫描、打印、图像编辑等不同应用场景。

正是这些特性,让 TIFF 成为图像存储与交换领域的经典格式,至今仍被广泛应用。

更多资料:https://github.com/0voice

相关推荐
Antonio9152 小时前
【图像处理】png 格式详解
图像处理
AndrewHZ2 小时前
【图像处理基石】什么是alpha matting?
图像处理·人工智能·计算机视觉·matting·发丝分割·trimap·人像模式
慕云紫英2 小时前
人工智能在全球多领域的应用潜力及当前技术面临的挑战
人工智能·aigc
“向阳的蛋”2 小时前
生老病死(一)
人工智能·ai
流烟默2 小时前
机器学习中模型的鲁棒性是什么
人工智能·机器学习·鲁棒性
Baihai_IDP2 小时前
并行智能体是否将重塑软件开发模式?
人工智能·程序员·ai编程
飞哥数智坊3 小时前
当你还在用 AI 写周报,别人的 AI 已经在炒币炒股了
人工智能
Juchecar3 小时前
翻译:软件开发的演进:从机器码到 AI 编排
人工智能
字节数据平台3 小时前
火山引擎发布Data Agent新能力,推动用户洞察进入“智能3.0时代”
大数据·人工智能