import os
import piexif
from PIL import Image
#上面报错,说明没有安装模块,打开CMD,输入 pip install piexif Pillow 后回车即可。
orgpath = r savepath = r def set_photo_exif (path, path2, Key_Name, Key_Value):
print ("函数调用成功")
im = Image.open (path) # 打开指定路径的照片
exif_dict = piexif.load (im.info["exif"]) # 获取该照片的原始EXIF信息
print (exif_dict) # 输出原始EXIF信息
# 通过修改exif_dict字典的键名和键值来改变照片的EXIF信息。
# 具体操作是将exif_dict中的键名为Key_Name的值设置为Key_Value,即修改了照片的EXIF信息。
exif_dict[
exif_bytes = piexif.dump (exif_dict) # 将修改后的exif_dict转换为二进制数据exif_bytes
# 创建要保存的目录
save_dir = os.path.dirname (path2)
if not os.path.exists (save_dir):
os.makedirs (save_dir)
# 更新文件路径并保存图片
im.save (path2, exif=exif_bytes)
if __name__ == set_photo_exif (orgpath, savepath, 271, "xiaomi5") #调用函数set_photo_exif,并传入参数orgpath、savepath、271和" ;xiaomi5"
# orgpath是原始图片的路径。
# savepath是要保存修改后图片的路径。
# 271是需要修改的EXIF键的名称。
# "xiaomi5"是要设置的新的EXIF键值。
# {
# "0th": {
# "259": 6, // 图片压缩方案:6 (JPEG压缩)
# "257": 4032, // 图像宽度的像素数:4032像素
# "271": "vivo", // 设备制造商:"vivo"
# "274": 0, // 图像方向:0 (未旋转)
# "306": "2019:04:26 19:11:06", // 图像创建时间:"2019年04月26日19时11分06秒"
# "34853": 857, // 曝光程序:857
# "283": [72, 1], // 垂直分辨率:72 dpi
# "282": [72, 1], // 水平分辨率:72 dpi
# "256": 3024, // 图像高度的像素数:3024像素
# "272": "vivo X21A", // 设备型号:"vivo X21A"
# "305": "sdm660_64-user 8.1.0 OPM1.171019.011 eng.compil.20190122.202306 release-keys", // 软件/固件版本信息
# "531": 1, // YCbCr 位置控制:1
# "34665": 310, // Exif 版本:310
# "296": 2 // 操作系统:2
# },
# "Exif": {
# "37378": [169, 100], // 光圈值:f/1.9
# "36864": "0220", // 文件变动时间:"2020:02:20"
# "41729": "?", // Flash 闪光灯状态:?
# "37380": [0, 10], // 快门速度:1/10秒
# "34850": 0, // 曝光模式:0 (自动曝光)
# "40961": [65535, 0], // 白平衡:自动白平衡
# "40963": 4032, // 图像高度的像素数:4032像素
# "37379": [-352, 100], // 曝光补偿:-3.52
# "36867": "2018:04:26 19:11:06", // 原始拍摄日期和时间:"2018年04月26日19时11分06秒"
# "40960": "0100", // 色彩空间:sRGB
# "37500": "flower", // 图片场景:花卉
# "37521": "161801", // 图像唯一标识符:"161801"
# "41987": 0, // 光线亮度:0
# "40965": 1070, // 曝光指数:1070
# "41986": 0, // 感应方式:0
# "33434": [588, 10000], // 快门速度:1/16秒
# "37385": 0, // 数字变焦倍率:0
# "37520": "161801", // 图像唯一标识符:"161801"
# "33437": [18000, 10000], // 快门速度:1/5秒
# "34855": 1031, // ISO 速度:1031
# "37510": "ASCII\x00\x00\x00NID:SIZE:2.0MB", // ASCII 提示信息:"NID:SIZE:2.0MB"
# "40962": 3024, // 图像高度的像素数:3024像素
# "37121": "???", // 厂商自定义信息:"???"
# "41989": 30, // 感光度类型:30
# "37522": "161801", // 图像唯一标识符:"161801"
# "36868": "2019:04:26 19:11:06", // 创建日期和时间:"2019年04月26日19时11分06秒"
# "37377": [4090, 1000], // 最大光圈值:f/40
# "37386": [3950, 1000], // 闪光灯亮度比例:3.95
# "37383": 2, // 白平衡模式:手动白平衡
# "41990": 0, // 打闪状态:0
# "37384": 0, // 软件变焦倍率:0
# "41495": 2 // 场景拍摄标志:2
# },
# "GPS": {
# "2": [[43, 1], [53, 1], [26016, 10000]], // 纬度:43°53 # "6": [0, 1000], // 海拔高度:0米
# "1": "N", // 纬度参考:"北纬"
# "5": 0, // GPS定位状态:未定位
# "27": "NETWORK", // GPS接收方式:"网络接收"
# "3": "E", // 经度参考:"东经"
# "7": [[11, 1], [11, 1], [5, 1]], // 经度:11°11 # "29": "2019:04:26", // GPS日期:"2019年04月26日"
# "4": [[125, 1], [17, 1], [532895, 10000]] // 维度:125°17 # },
# "Interop": {
# "1": "R98" // 交换格式适配性:R98
# },
# "1st": {},
# "thumbnail": null // 缩略图:空
# }