如何使用 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
但是有没有办法知道这些图片的原始格式呢?
我试过 tifffile
和 tiffany
,它们允许我将页面转换为 numpy 数组,然后作为图像写入磁盘,但它们不允许我知道图像的源格式包含在 TIFF 文件中。
在大多数情况下,我认为这是不可能的,因为将 JPEG 图像作为未压缩的 RGB 数组包含在 TIFF 文件中是完全可行的。
但实际上,您应该能够查看 TIFF 文件的一些标签,例如压缩,对图像过去的样子进行有根据的猜测。 tiffinfo 和 tiffdump(来自 libtiff 包)等工具可用于检查 TIFF 文件。
我有一个多页 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
但是有没有办法知道这些图片的原始格式呢?
我试过 tifffile
和 tiffany
,它们允许我将页面转换为 numpy 数组,然后作为图像写入磁盘,但它们不允许我知道图像的源格式包含在 TIFF 文件中。
在大多数情况下,我认为这是不可能的,因为将 JPEG 图像作为未压缩的 RGB 数组包含在 TIFF 文件中是完全可行的。
但实际上,您应该能够查看 TIFF 文件的一些标签,例如压缩,对图像过去的样子进行有根据的猜测。 tiffinfo 和 tiffdump(来自 libtiff 包)等工具可用于检查 TIFF 文件。