我有一堆我计划用于某些东西的图像,如果我可以通过给它们提供Python脚本可以读取的标记来对它们进行排序将会非常有用。我尝试了this StackOverflow post中的一些方法,但没有一个方法返回我需要的数据。这是我尝试过的:
from PIL import Image
import PIL.ExifTags
import exifread
dir = "C:\directory\\"
image = "image_name.jpg"
image_dir = dir + image
img = Image.open(image_dir)
#Attempt 1 - using PIL
exif_data = img._getexif()
print(exif_data)
#Attempt 2 - using exifread
f = open(image_dir)
tags = exifread.process_file(f)
print(tags)
#Attemp 3 - using PIL
exif = {
PIL.ExifTags.TAGS[k]: v
for k, v in img._getexif().items()
if k in PIL.ExifTags.TAGS
}
print(exif)
结果有点长而且凌乱(尝试1返回一个很长的字典,带有一堆重复的“\ x00 \”所以我不会在这里发布):
{'Image XPKeywords': (0x9C9E) Byte=[] @ 30, 'EXIF Padding': (0xEA1C) Undefined=[] @ 2128, 'Image ExifOffset': (0x8769) Long=2110 @ 18, 'Image Padding': (0xEA1C) Undefined=[] @ 50}
{'ExifOffset': 2110, 'XPKeywords': 'e\x00x\x00a\x00m\x00p\x00l\x00e\x00;\x00t\x00e\x00s\x00t\x00\x00\x00'}
标签本身就是“示例”和“测试”。关于我能以不同方式做什么的任何提示?
答案 0 :(得分:0)
您可能希望尝试将其作为Python 3脚本运行。我刚刚针对
运行了你的尝试#1代码https://upload.wikimedia.org/wikipedia/commons/1/1e/Stonehenge.jpg
它起作用了,给出了结果:
{40963: 472, 305: 'Adobe Photoshop CS Windows', 274: 1, 40962: 709, 40961: 65535, 296: 2, 34665: 164, 282: (120, 1), 283: (120, 1), 306: '2005:10:13 15:32:07'}
注意:我使用Pillow,PIL的分支来自 - http://pillow.readthedocs.io/en/3.1.x/installation.html