[Python] 纯文本查看 复制代码
import piexif
from PIL import Image
# date1 = str(time.strftime("%Y:%m:%d %H:%M:%S", time.localtime()))
date1 = '2015:05:05 16:40:25'
def set_photo_exif(path, date):
print("6666")
im = Image.open(path)
exif_dict = piexif.load(im.info["exif"])
print(exif_dict)
# 其实就是获取字典 并把字典里的值替换掉
# exiftest = {'0th': {259: 6, 257: 4032, 271: b'vivo', 274: 0, 306: b'2019:04:26 19:11:06', 34853: 857, 283: (72,
# 1), 282: (72, 1), 256: 3024, 272: b'vivo X21A', 305: b'sdm660_64-user 8.1.0 OPM1.171019.011
# eng.compil.20190122.202306 release-keys', 531: 1, 34665: 310, 296: 2}, 'Exif': {37378: (169, 100),
# 36864: b'0220', 41729: b'?', 37380: (0, 10), 34850: 0, 40961: (65535, 0), 40963: 4032, 37379: (-352, 100),
# 36867: b'2018:04:26 19:11:06', 40960: b'0100', 37500: b'flower', 37521: b'161801', 41987: 0, 40965: 1070,
# 41986: 0, 33434: (588, 10000), 37385: 0, 37520: b'161801', 33437: (18000, 10000), 34855: 1031,
# 37510: b'ASCII\x00\x00\x00NID:SIZE:2.0MB', 40962: 3024, 37121: b'???', 41989: 30, 37522: b'161801',
# 36868: b'2019:04:26 19:11:06', 37377: (4090, 1000), 37386: (3950, 1000), 37383: 2, 41990: 0, 37384: 0,
# 41495: 2}, 'GPS': {2: ((43, 1), (53, 1), (26016, 10000)), 6: (0, 1000), 1: b'N', 5: 0, 27: b'NETWORK', 3: b'E',
# 7: ((11, 1), (11, 1), (5, 1)), 29: b'2019:04:26', 4: ((125, 1), (17, 1), (532895, 10000))}, 'Interop': {1:
# b'R98'}, '1st': {}, 'thumbnail': None} print(type(exiftest))
exif_dict['Exif'][36867] = date1
# exif_dict = {}
# exif_ifd = {
# piexif.ExifIFD.DateTimeOriginal: date,
# piexif.ExifIFD.DateTimeDigitized: date,
# }
exif_bytes = piexif.dump(exif_dict)
im = Image.open(path)
im.save(path, exif=exif_bytes)
if __name__ == '__main__':
set_photo_exif("C:\\Users\\Administrator\\Desktop\\test\\2.jpg", date1)
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 // 缩略图:空
# }