如何使用 python 查找 tiff 文件中存在的图像(页面)的原始格式?

How to find the original format of images (pages) present in a tiff file using python?

我有一个多页 tiff 文件 (merged.tiff) 我需要从中提取原始格式的单个图像。 PIL 允许您遍历页面并以我需要的格式将它们写入磁盘 (png/jpg)。 例如:

from PIL import Image
img = Image.open('merged.tiff')
for i in range(img.n_frames):
    try:
        img.seek(i)
        img.save(f'individual_{i}.jpg')
        img.save(f'individual_{i}.png')
    except EOFError:
        break

但是有没有办法知道这些图片的原始格式呢? 我试过 tifffiletiffany ,它们允许我将页面转换为 numpy 数组,然后作为图像写入磁盘,但它们不允许我知道图像的源格式包含在 TIFF 文件中。

在大多数情况下,我认为这是不可能的,因为将 JPEG 图像作为未压缩的 RGB 数组包含在 TIFF 文件中是完全可行的。

但实际上,您应该能够查看 TIFF 文件的一些标签,例如压缩,对图像过去的样子进行有根据的猜测。 tiffinfo 和 tiffdump(来自 libtiff 包)等工具可用于检查 TIFF 文件。