在python中删除EXIF元数据

时间:2012-04-05 15:43:59

标签: python exif chilkat

我正在使用Django-media-tree将图像导入网站图像库。我在PIL中遇到一个错误,其中图像上的某些未知EXIF数据导致生成缩略图图像时出现未处理的异常。我没有在PIL中乱砍,而是希望在PIL处理之前从图像中删除所有EXIF数据。

使用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')

任何人都可以告诉我哪里出错了,或者如果有更好的方法来清理图像我会接受建议......

TIA

0 个答案:

没有答案