web-dev-qa-db-ja.com

Pythonでのtiff画像メタデータの読み取り

PythonのTIFF画像から、座標などのメタダを読み取るにはどうすればよいですか? PILからfoo._getexif()を試しましたが、次のメッセージが表示されました。

AttributeError: 'TiffImageFile'オブジェクトに属性 '_getexif'がありません

PILでそれを取得することは可能ですか?

6
Filipe Vargas
from PIL import Image
from PIL.TiffTags import TAGS

with Image.open('image.tif') as img:
    meta_dict = {TAGS[key] : img.tag[key] for key in img.tag.iterkeys()}

_getexif()はJPEGでの使用のみを目的としています。 JPEGではメタデータの解凍が必要ですが、TIFFでは必要ありません。そうは言っても、PILは単純にExifタグやディレクトリ(それほど単純ではない)TIFFメタデータを読み取りません。

7
Martin

ExifRead は、必要な操作を実行します。試してください:

import exifread
# Open image file for reading (binary mode)
f = open('image.tif', 'rb')

# Return Exif tags
tags = exifread.process_file(f)

# Print the tag/ value pairs
for tag in tags.keys():
    if tag not in ('JPEGThumbnail', 'TIFFThumbnail', 'Filename', 'EXIF MakerNote'):
        print "Key: %s, value %s" % (tag, tags[tag])
2
Landini135