Python修改图片的信息

在摄影和图像处理中,EXIF(可交换图像文件格式)数据扮演着非常重要的角色。它不仅包含了照片的基本信息如拍摄时间、相机型号等,还可能包含地理位置信息等更多细节。本文将指导你如何使用Python来修改一张JPEG图片中的EXIF数据,包括其GPS位置和拍摄时间。
为客户定制的临时修改图片信息,满足坐标修改和图片信息修。

准备工作

首先,确保你的环境中已经安装了必要的库:

pip install Pillow piexif

Pillow是Python Imaging Library (PIL) 的替代品,提供了强大的图像处理能力;而piexif是一个专门用于处理EXIF数据的库。

修改图片EXIF数据的步骤
  1. 加载图片及其现有的EXIF数据
    使用Image.open()方法打开目标图片,并用piexif.load()提取其中的EXIF数据。

  2. 添加或修改EXIF数据
    根据需要向EXIF字典中添加新的数据或者修改已有的信息。比如,我们可以通过设置特定字段来更新图片的GPS坐标和拍摄时间。

  3. 保存修改后的图片
    使用piexif.dump()将修改后的EXIF字典转换为字节流,并通过img.save()将其与图片一同保存。

下面是完整的代码示例:

from PIL import Image
import piexif
import datetime

def modify_exif_data(image_path, new_image_path):
    # 打开图片并获取其现有的EXIF数据
    img = Image.open(image_path)
    try:
        exif_dict = piexif.load(img.info['exif'])
    except KeyError:
        exif_dict = {"0th": {}, "Exif": {}, "GPS": {}, "1st": {}, "thumbnail": None}

    # 添加或修改GPS信息
    gps_info = {
        piexif.GPSIFD.GPSLatitude: ((31, 1), (9, 1), (19, 1)),  # 示例纬度
        piexif.GPSIFD.GPSLongitude: ((105, 1), (43, 1), (31, 1)),  # 示例经度
        piexif.GPSIFD.GPSAltitude: (428, 1),  # 海拔高度
        piexif.GPSIFD.GPSLatitudeRef: 'N',  # 北纬
        piexif.GPSIFD.GPSLongitudeRef: 'E',  # 东经
    }
    exif_dict['GPS'] = gps_info

    # 设置新的拍摄时间
    new_date_time = datetime.datetime(2025, 12, 28, 15, 41, 0)
    exif_dict["Exif"][piexif.ExifIFD.DateTimeOriginal] = new_date_time.strftime("%Y:%m:%d %H:%M:%S")

    # 将修改后的EXIF字典转为字节串并插入到图片中
    exif_bytes = piexif.dump(exif_dict)
    img.save(new_image_path, exif=exif_bytes)

# 调用函数进行测试
modify_exif_data('d:/wordspacePython/test/upImg/3.jpg', 'new.jpg')

在这里插入图片描述
3.jpg是原照
new.jpg是修改后的
右击照片属性查看修改后的信息

这段代码演示了如何使用Python脚本修改JPEG图片的EXIF数据,包括GPS坐标和拍摄时间。根据自己的需求调整代码中的具体值,即可轻松应用到不同的场景中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值