Python 计算多页 TIFF 文件组中的总页数

Python count total number of pages in group of multi-page TIFF files

我想知道是否可以在 Python 中创建一个程序,该程序能够获取 .tiff 文件中的页数,然后准确输出所有页数。我是 Python 的新手,但想尝试编写可以执行此操作的代码。这可能吗?如果是这样,你能指出我的写作方向吗?从我的谷歌搜索来看,我似乎需要使用 PIL。

我认为这不可能,但是... Python 是否可以从 .tiff 文件中获取任何元数据信息,然后将所有文件中的所有元数据信息简单地加在一起?

感谢您的帮助!

尝试这样的事情。

from PIL import Image
img = Image.open("picture.tiff")
i = 0                                                                           
while True:
    try:   
        img.seek(i)
    except EOFError:
        break       
    i += 1          
print i      

是的,有可能。

This answer 提供了一些关于如何使用 Python 成像库查看 multiple-image TIFF 数据的指导。 Nathan 的回答还给出了该方法的具体细节。

理论上可以只查看文件的 header 数据。为此,您需要 research the binary structure of the TIFF format and probably use Python's built-in struct library 解压 header 数据。但这是一些非常高级的东西。

无论使用哪种解决方案,您都需要一个循环遍历 TIFF 文件。 This answer 将使您在正确的路径上找到目录中的文件并循环遍历它们。

更新:

这是完整解决方案的粗略近似值:

import os
from PIL import Image

count = 0
tiffs_path = "c:\wherever"

for filename in os.listdir(tiffs_path):
    if filename.endswith(".tiff"):
        img = Image.open(filename)
        while True:
            try:   
                img.seek(count)
            except EOFError:
                break       
            count += 1          

print count  

这假设您关心的所有 TIFF 文件都在 c:\wherever

您可以使用

Blockquote

从 PIL 导入图像 testimage = Image.open(文件名,"r") 打印(testimage.n_frames)

Blockquote