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

时间:2017-09-26 22:04:51

标签: python pillow

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

我不认为这是可能的,但...... Python是否可以从.tiff文件中获取任何元数据信息,只需从所有文件中将它们全部添加到一起?

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

尝试这样的事情。

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

答案 1 :(得分:1)

是的,这是可能的。

This answer为如何使用Python Imaging Library查看多图像TIFF数据提供了一些指导。内森的回答也给出了这种方法的具体细节。

理论上可以只查看文件的标题数据。为此,您需要research TIFF格式的二进制结构,并可能使用Python's built-in struct library来解压缩标头数据。但这是一些非常先进的东西。

使用任一解决方案,您都需要一个循环来浏览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

答案 2 :(得分:0)

您可以使用

  

Blockquote

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

  

Blockquote