因此,我希望从设备上的所有照片中获取EXIF数据,而无需手动打开或从图库中选择照片。到目前为止,我已经找到了很多方法从单张照片(带有硬编码文件路径)中提取它。
我的问题是,如何在不打开或选择的情况下访问每张照片,然后收集EXIF数据?
我的假设是我必须通过Environment.DIRECTORY_PHOTOS
访问手机的原生照片目录,然后找到一些方法来遍历该目录中的所有照片并收集我需要的信息。但是,我还没有找到实现这个目标的方法。
这可能吗?或者有更好的方法来实现这一目标吗?
答案 0 :(得分:0)
如果您拥有该文件夹的正确目录,则应该能够遍历照片列表以获取exif数据。它很慢但很有效。
基本上,迭代它们。例如,在python中(我为项目做了这个):
from PIL import Image
from PIL.ExifTags import TAGS
from PIL.ExifTags import GPSTAGS
def get_field (exif,field):
for (k,v) in exif.items():
if TAGS.get(k) == field:
return v
try:
for filename in glob.glob("*.jpg"):
image=Image.open(filename)
for (k,v) in Image.open(image)._getexif().items():
print ('%s = %s' % (TAGS.get(k), v))
img = Image.open(image)
exif = img._getexif()
fs="%Y:%m:%d %H:%M:%S" #date format
datetime = get_field(exif,'DateTime')#Date Time
这样的事可能会这样做。 您可以在android中执行类似的操作,只需确保使用可以快速迭代的图像库。