Pillow TIFF格式

2021-07-09 17:24 更新

Pillow可以读写TIFF文件。它可以读取条纹图像和平铺图像,像素和平面交错的多波段图像。如果您安装了libtiff及其头文件,那么pillow可以读写多种压缩的TIFF文件。否则,Pillow只能读写未压缩的文件。

从5.0.0版开始,Pillow需要libtiff读取或写入压缩文件。在该版本发布之前,Pillow支持在不使用libtiff的情况下读取packbits、lzw和jpeg压缩的tiff。

该 ​open()​ 方法可以设置以下内容 ​info ​属性:

  • compression ​  压缩模式。

2.0.0 新版功能.

  • dpi ​  图像分辨率 (xdpi, ydpi) 为元组,你可以使用 ​tag​ 属性获取有关图像分辨率的详细信息。

1.1.5 新版功能.

  • resolution ​ 图像分辨率 (xres, yres) 为元组。这是以文件指定的单位为单位的度量。

1.1.5 新版功能.

这个 ​tag_v2 ​属性包含在TIFF元数据字典。键是来自 ​TiffTags.TAGS_V2​的数字索引。值是单个项的字符串或数字,在一个值的元组中返回多个值。有理数返回为 ​IFDRational​ 对象。

3.0.0 新版功能.

为了与旧代码兼容,该 ​tag​属性包含一个解码 TIFF 字段的字典,如在 3.0.0 版之前返回。值以字符串或数值元组的形式返回。有理数作为 的元组返回。(numerator, denominator)

3.0.0 版后已移除.

读取多帧TIFF图像

TIFF加载程器支持 ​seek() ​和 ​tell()​ 方法,获取并返回图像文件中的帧编号。您可以将这些方法组合到下一帧 (​im.seek(im.tell() + 1) ​)。帧的编号从0到 ​im.num_frames - 1 ​,可以按任意顺序访问。

​​如果你试图寻找最后一帧,im.seek()​ 会抛出一个 ​EOFError 

保存TIFF图像

这个​ save()​ 方法可以采用以下关键字参数:

  • save_all ​  如果为真,Pillow将把图像的所有帧保存到多帧TIFF文档中。

3.4.0 新版功能.

  • append_images ​  附加为附加帧的图像列表。列表中的每个图像都可以是单帧或多帧图像。但是请注意,为了得到正确的结果,所有附加的图像都应该具有相同的 ​encoderinfo ​和 ​encoderconfig ​属性。

4.2.0 新版功能.

  • tiffinfo ​  一个​ImageFileDirectory_v2 ​包含TIFF标记和值的对象或dict对象。TIFF字段类型是自动检测数值和字符串值的,任何其他类型都需要使用 ​ImageFileDirectory_v2 ​对象并从 ​TiffTags.TYPES ​设置输入具有适当的数值的​tagtype ​。

2.3.0 新版功能.

应使用​IFDRational​对象传入有理类型的元数据值。

3.1.0 新版功能.

为了与旧代码兼容,​ImageFileDirectory_v1​可以在该字段中传递一个 对象。但是,这已被弃用。

5.4.0 新版功能.

以前的版本在使用libtiff编写时只支持一些标记。支持的列表位于 ​TiffTags.LIBTIFF_CORE​ 。

6.1.0 新版功能.

增加了对签名类型(例如 ​TIFF_SIGNED_LONG ​)以及多个值的支持。单个标记=签的多个值必须为 ​ImageFileDirectory_v2 ​作为元组并需要匹配的类型 ​tagtype ​标记类型。

  • compression ​包含文件所需压缩方法的字符串。(仅在安装libtiff时有效)有效的压缩方法为: ​None ​,​ "tiff_ccitt"​ ,​ "group3"​ , ​"group4"​ , ​"tiff_jpeg" ​,​ "tiff_adobe_deflate"​ , ​"tiff_thunderscan" ​,​ "tiff_deflate"​ ,​ "tiff_sgilog" ​,​ "tiff_sgilog24"​ , ​"tiff_raw_16"
  • quality ​ jpeg压缩的图像质量,从0(最差)到100(最好)。默认值为75。

6.1.0 新版功能.

设置TIFF头字段的这些参数是使用TiffInfo提供的常规标记的替代方法。

  • description
  • software
  • date_time
  • artist

  • copyright ​  字符串
  • resolution_unit ​ 一个整数。1表示无单位,2表示英寸,3表示厘米。
  • resolution  ​整数或浮点数,用于x和y分辨率。
  • x_resolution  ​整数或浮点数。
  • y_resolution  ​整数或浮点数。
  • dpi  一组(x_resolution, y_resolution),以英寸为分辨率单位。为了与其他图像格式保持一致,dpi的x和y分辨率将四舍五入为最接近的整数。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号