python 修改、读取图片元数据
? 图片元数据图片元数据(metadata)是嵌入到图片文件中的一些标签。比较像文件属性,但是种类繁多。常见的几种标准有: EXIF:通常被数码相机在拍摄照片时自动添加,比如相机型号、镜头、曝光、图片尺寸等信息。 ? 修改、读取图片元数据Exiv2Exiv2的网站:https://www.exiv2.org/index.html Exiv2github链接:https://github.com/LeoHsiao1/pyexiv2 读取元数据: >>> from pyexiv2 import Image >>> i = Image("tests/1.jpg") # 登记图片路径 >>> i.read_exif() # 读取元数据,这会返回一个字典 {‘Exif.Image.DateTime‘: ‘2019:06:23 19:45:17‘,‘Exif.Image.Artist‘: ‘TEST‘,‘Exif.Image.Rating‘: ‘4‘,...} >>> i.read_iptc() {‘Iptc.Envelope.CharacterSet‘: ‘x1b%G‘,‘Iptc.Application2.ObjectName‘: ‘TEST‘,‘Iptc.Application2.Keywords‘: ‘TEST‘,...} >>> i.read_xmp() {‘Xmp.dc.format‘: ‘image/jpeg‘,‘Xmp.dc.rights‘: ‘lang="x-default" TEST‘,‘Xmp.dc.subject‘: ‘TEST‘,...} 修改元数据: >>> # 准备一个字典,包含你想修改的标签 >>> _dict = {"Xmp.xmp.CreateDate": "2019-06-23T19:45:17.834",# 设置这个标签的值 ... "Xmp.xmp.Rating": ""} # 显式地设置一个空字符串来删除该标签 } >>> i.modify_xmp(_dict) # 执行修改 >>> xmp_dict = i.read_xmp() # 重新读取元数据 >>> xmp_dict["Xmp.xmp.CreateDate"] ‘2019-06-23T19:45:17.834‘ # 这个标签已经被修改了 >>> xmp_dict["Xmp.xmp.Rating"] KeyError: ‘Xmp.xmp.Rating‘ # 这个标签已经被删除了 # 使用 i.modify_exif() 、i.modify_iptc() 的方法同理 Piexif?五个功能: load(filename) -以dict的形式获取exif数据。 dump(exif_dict) -以字节为单位获取exif 以使用JPEG保存。 insert(exif_bytes,filename) -将exif插入JPEG。 remove(filename) -从JPEG移除exif。 移植(文件名,文件名) -将exif从JPEG移植到JPEG。 1.Piexif不依赖任何第三个库。
2.在Python 2.7、3.3、3.4、3.5、3.6,pypy和pypy3上进行了测试。Piexif甚至可以在IronPython上运行。Piexif与操作系统无关,可以在GoogleAppEngine上运行。
批量消除图片元信息的脚本 import piexif import sys import os import re def remove_all_exif(image_names): for image_name in image_names: try: piexif.remove(image_name) print(image_name,"exif信息清除完毕") except Exception: pass def get_images(): all_file_names = os.listdir() image_names = list() for file_name in all_file_names: if re.match(r".*.(jpg|JPG|png)",file_name): image_names.append(file_name) print("已经将",file_name,"添加到列表!") else: pass return image_names def main(): image_names = get_images() remove_all_exif(image_names) pass if __name__ == "__main__": main() ? ? 参考:Python读写图片元数据(EXIF、IPTC、XMP) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |