画像からEXIFデータを取得する PILを使用しますが、写真が撮影された日時を取得するにはどうすればよいですか?
最終的に答えを見つけた、私が必要なタグは 6867 :
from PIL import Image
def get_date_taken(path):
return Image.open(path)._getexif()[36867]
exif-py
を使用したいのは、純粋なpythonであり、コンパイル/インストールを必要とせず、python 2.xおよび3.xの両方で動作するため、小規模なバンドルに最適ですポータブルpythonアプリケーション。
リンク: https://github.com/ianare/exif-py
写真が撮影された日付と時刻を取得する例:
import exifread
with open('image.jpg', 'rb') as fh:
tags = exifread.process_file(fh, stop_tag="EXIF DateTimeOriginal")
dateTaken = tags["EXIF DateTimeOriginal"]
return dateTaken
try:
import PIL
import PIL.Image as PILimage
from PIL import ImageDraw, ImageFont, ImageEnhance
from PIL.ExifTags import TAGS, GPSTAGS
except ImportError as err:
exit(err)
class Worker(object):
def __init__(self, img):
self.img = img
self.get_exif_data()
self.date =self.get_date_time()
super(Worker, self).__init__()
def get_exif_data(self):
exif_data = {}
info = self.img._getexif()
if info:
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
if decoded == "GPSInfo":
gps_data = {}
for t in value:
sub_decoded = GPSTAGS.get(t, t)
gps_data[sub_decoded] = value[t]
exif_data[decoded] = gps_data
else:
exif_data[decoded] = value
self.exif_data = exif_data
# return exif_data
def get_date_time(self):
if 'DateTime' in self.exif_data:
date_and_time = self.exif_data['DateTime']
return date_and_time
def main():
date = image.date
print(date)
if __name__ == '__main__':
try:
img = PILimage.open(path + filename)
image = Worker(img)
date = image.date
print(date)
except Exception as e:
print(e)
キー 'DateTimeOriginal'を使用して_getexif()によって返された辞書から?