Python EXIF提取会给Android照片带来错误



我正在尝试使用以下代码从作为base64字符串发送到Google Cloud的图像中提取EXIF元数据信息:

imgdata = base64.b64decode(str(base64_string)) 
image = Image.open(io.BytesIO(imgdata))
for orientation in ExifTags.TAGS.keys() : 
if ExifTags.TAGS[orientation]=='Orientation': 
break 
exif=dict(image._getexif().items())

尽管上面的代码似乎适用于IOS,但它会崩溃,Android照片在最后一行给出AttributeError: 'NoneType' object has no attribute 'items'

exif=dict(image._getexif().items())

我知道我可以在尝试访问它之前检查._getexif()是否None,但是您为什么认为会发生此错误?它与Android存储EXIF信息的方式有关吗?任何帮助,不胜感激。

对于任何可能因同样原因而苦苦挣扎的人来说,无论它是否有 EXIF 信息,我都无法_getexif()处理 Android 图像。相反,我们将EXIF信息直接从前端传递到后端。

我还注意到,iPhone拍摄的图像的EXIF字典在键'274'中具有方向变量,而在Android拍摄的图像中,键是'Orientation'

最新更新