2017-09-26 44 views
0

Pythonで.tiffファイル内のページ数を取得して正確にいくつのページを出力することができるかどうかは疑問でしたそれはすべて一緒です。私はPythonが初めてですが、これを行うためのコードを書こうとしています。これは可能ですか?もしそうなら、書く方向を教えてください。私のグーグルでは、PILを使う必要があるようです。Python countマルチページ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 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(i) 
      except EOFError: 
       break  
      count += 1   

print count 

これは、あなたが気にすべてのTIFFファイルがc:\whereverしている前提としています。

+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  
関連する問題