2017-04-15 55 views
0

一直在那里四处寻找仍然似乎没有一个很好的文件和图像exif /元数据操作的最新。图片exif /元数据阅读/写作?

我必须通过文件夹重命名取决于它们的文件夹名称的文件使用piexif

import os 
import piexif 

for root, dirs, files in os.walk("C:\\Users\\Alan Partridge\\Desktop\\images"): 
    if not files: 
     continue 
    prefix = os.path.basename(root) 
    for f in files: 
     #print os.path.join(root, f) 
     exif_dict = piexif.load(os.path.join(root, f)) 
     print exif_dict 
     for ifd in ("0th", "Exif", "GPS", "1st"): 
      for tag in exif_dict[ifd]: 
       print(piexif.TAGS[ifd][tag]["name"], exif_dict[ifd][tag]) 
     #os.rename(os.path.join(root, f), os.path.join(root, "{} ID {}".format(prefix, f))) 

下面的代码它循环(注释),但现在,它输出的任何数据图书馆可以找到。

目前,它可以找到ImageDescription,这很好。我的问题是我将如何去修改它?不幸的是,我无法做到,也无法做到这一点。也许我错过了一些明显的东西?

回答

0

图片EXIF信息可以在这个文件中找到:

http://www.cipa.jp/std/documents/e/DC-008-2012_E.pdf

要使用piexif库构建EXIF信息,并写入到目标文件:(蟒蛇)

建立EXIF信息,以保存来自源文件的方向,通过窗口读取它以显示正确的方向。

源:http://piexif.readthedocs.io/en/latest/functions.html?highlight=save

zeroth_ifd = {piexif.ImageIFD.Orientation: image_orientation, 
       piexif.ImageIFD.ImageWidth: int(new_width), 
       piexif.ImageIFD.ImageLength: int(new_height), 
       piexif.ImageIFD.Software: u"piexif" 
       } 

exif_dict = {"0th":zeroth_ifd} 
exif_bytes = piexif.dump(exif_dict) 

with open(dest, 'r+b') as f: 
    with Image.open(dest,'r') as image: 
     image.save(dest, "jpeg", exif=exif_bytes)