Извлечение Python EXIF ​​дает ошибку с фотографиями Android - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь извлечь информацию метаданных EXIF ​​из изображения, отправленного в Google Cloud в виде строки base64, с телефона с этим кодом:

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() 1009 * или нет, прежде чем пытаться получить к нему доступ, но как вы думаете, почемуэта ошибка происходит?Это связано с тем, как Android хранит информацию EXIF?Любая помощь приветствуется.

1 Ответ

0 голосов
/ 05 декабря 2018

Для тех, кто может бороться по той же причине, я не смог заставить _getexif() работать с изображениями Android, независимо от того, была ли у них информация EXIF ​​или нет.Вместо этого мы передали информацию EXIF ​​в бэкэнд непосредственно из внешнего интерфейса.

Я также заметил, что в словаре EXIF ​​для снятых изображений iPhone были переменные ориентации в ключе '274', тогда как в снятых изображениях Android ключ был 'Orientation'.

...