Удаление метаданных EXIF ​​в python

Я использую Django-media-tree для импорта изображений в библиотеку изображений сайта. Я сталкиваюсь с ошибкой в ​​PIL, когда некоторые неизвестные данные EXIF ​​на изображении вызывают необработанное исключение при создании миниатюрных изображений. Вместо того, чтобы взламывать PIL, я хочу просто удалить все EXIF-данные с изображения, прежде чем оно будет обработано PIL.

Использование chilkat.CkXmp() Я пытаюсь переписать изображение в новый каталог в чистом виде, однако метод RemoveAllEmbedded() возвращает None, а изображение перезаписывается с сохранением данных EXIF.

import os
import sys
import chilkat

ALLOWED_EXTENSIONS = ['.jpg', 'jpeg', '.png', '.gif', 'tiff']

def listdir_fullpath(d):
    list = []
    for f in os.listdir(d):
        if len(f) > 3:
            if f[-4:] in ALLOWED_EXTENSIONS:
                list.append(os.path.join(d, f))
    return list

def trim_xmp_data(file, dir):
    xmp = chilkat.CkXmp()
    success = xmp.UnlockComponent("Anything for 30-day trial.")
    if (success != True):
        print xmp.lastErrorText()
        sys.exit()

    success = xmp.LoadAppFile(file)
    if (success != True):
        print xmp.lastErrorText()
        sys.exit()
    print "Num embedded XMP docs: %d" % xmp.get_NumEmbedded()

    xmp.RemoveAllEmbedded()

    #  Save the JPG.
    fn = "%s/amended/%s" % (dir, file.rsplit('/')[-1])
    success = xmp.SaveAppFile(fn)
    if (success != True):
        print xmp.lastErrorText()
        sys.exit()


for item in listdir_fullpath('/Users/harrin2/Desktop/tmp/'):
    trim_xmp_data(item, '/Users/harrin2/Desktop/tmp')

Может кто-нибудь сказать мне, где я иду не так, или, если есть лучший способ очистки изображений, я открыт для предложений.....

ТИА

0 ответов

Другие вопросы по тегам