手动修改图片exif信息,如何用python代码实现

43次阅读
没有评论

共计 1184 个字符,预计需要花费 3 分钟才能阅读完成。

要手动修改图片的 EXIF 信息,可以使用 Python 的 PIL 库(Pillow)来实现。以下是一个示例代码,演示如何使用 PIL 库修改图片的拍摄日期(DateTime)的 EXIF 信息:

from PIL import Image
from PIL.ExifTags import TAGS
def modify_exif(image_path, new_datetime):
# 打开图片
image = Image.open(image_path)
# 获取图片的 EXIF 信息
exif_data = image._getexif()
# 将 EXIF 信息转换为字典形式
exif_dict = {TAGS[key]: exif_data[key] for key in exif_data.keys() if key in TAGS and isinstance(exif_data[key], (str, int))}
# 修改拍摄日期的 EXIF 信息
exif_dict['DateTimeOriginal'] = new_datetime
exif_dict['DateTimeDigitized'] = new_datetime
# 将修改后的 EXIF 信息转换回元组形式
new_exif_data = {TAGS[key]: exif_dict[TAGS[key]] for key in exif_dict.keys()}
new_exif_data = {key: new_exif_data[key] for key in new_exif_data.keys() if isinstance(new_exif_data[key], int)}
new_exif_data = {TAGS[key]: new_exif_data[key] for key in new_exif_data.keys() if key in TAGS}
# 创建一个新的图片对象,将修改后的 EXIF 信息写入其中
new_image = image.copy()
new_image.save("modified_image.jpg", exif=new_exif_data)
print("修改成功")
# 示例用法
image_path = "example.jpg"
new_datetime = "2022:01:01 12:00:00"
modify_exif(image_path, new_datetime)

在上面的示例中,modify_exif函数接受一个图片路径和一个新的拍摄日期作为参数。函数通过 PIL 库打开图片,并使用 _getexif 方法获取图片的 EXIF 信息。然后,将 EXIF 信息转换为字典形式,修改拍摄日期的值,并将修改后的 EXIF 信息转换回元组形式。最后,创建一个新的图片对象,将修改后的 EXIF 信息写入其中,并保存为一个新的图片文件。
请注意,要使用 PIL 库,你需要通过 pip install pillow 命令安装它。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-22发表,共计1184字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)