2017-09-26 49 views
0

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

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

谢谢你的帮助!

+0

https://stackoverflow.com/questions/26660415/pillow-and-multi-page-tiffs –

+0

可能重复的[PIL(低)和多页面TIFFS](https://stackoverflow.com/questions/ 26660415/pillow-and-multi-page-tiffs) –

回答

1

是的,这是可能的。

This answer提供了一些有关如何在Python图像库中查看多图像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(i) 
      except EOFError: 
       break  
      count += 1   

print count 

这是假设你所关心的是c:\wherever所有的TIFF文件。

+0

非常感谢你的代码,我很感激!我试着改变一些东西,因为我得到语法错误。我发布它作为另一个评论,因为我不知道如何把正确的格式作为评论。 – MKatana

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