2017-09-26 69 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