Pillow TIFF格式
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分辨率将四舍五入为最接近的整数。