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

时间:2018-09-21 08:59:28

标签: android python base64 exif

我正在尝试使用以下代码从手机中以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信息有关吗?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

对于任何可能出于相同原因而苦苦挣扎的人,无论_getexif()是否具有EXIF信息,我都无法使用Android图像。相反,我们将EXIF信息直接从前端传递给后端。

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