def exifread_usage():
import exifread
print("============exifread===============")
# view exif data
with open('example.jpg', 'rb') as img_file:
tags = exifread.process_file(img_file)
sorted_keys = sorted(tags)
for tag in sorted_keys:
if tag not in ('JPEGThumbnail', 'TIFFThumbnail', 'Filename'):
print(f"{tag}: {tags[tag]}")
def exif_usage():
import exif
print("============exif===============")
with open('example.jpg', 'rb') as img_file:
image = exif.Image(img_file)
# view exif data
print("============view===============")
list_all = sorted(image.list_all())
for tag in list_all:
print(f"{tag}: {image.get(tag)}")
print("============edit===============")
# edit exif data
image.model = "exif Model"
with open('example_exif_edit.jpg', 'wb') as new_image_file:
new_image_file.write(image.get_file())
print("============delete===============")
image.delete("model")
with open('example_exif_delete_model.jpg', 'wb') as new_image_file:
new_image_file.write(image.get_file())
image.delete_all()
with open('example_exif_delete_all.jpg', 'wb') as new_image_file:
new_image_file.write(image.get_file())
def get_keys(d, value):
for k, v in d.items():
if v == value:
return k
return None
def pillow_usage():
from PIL import Image
from PIL.ExifTags import TAGS
print("============pillow===============")
# print(TAGS)
with (Image.open('example.jpg') as img):
exif_data = img._getexif()
# print(exif_data)
# view exif data
print("============view===============")
for k, v in exif_data.items():
print(f'{TAGS.get(k)}: {v}')
def piexif_usage():
import piexif
import shutil
print("============piexif===============")
print("============view===============")
exif_dict = piexif.load("example.jpg")
for ifd in ("0th", "Exif", "GPS", "1st"):
for tag in exif_dict[ifd]:
print(piexif.TAGS[ifd][tag]["name"], exif_dict[ifd][tag])
print("============edit===============")
shutil.copy("example.jpg", 'example_piexil_edit.jpg')
exif_dict_edit = piexif.load("example_piexil_edit.jpg")
exif_dict_edit['0th'][piexif.ImageIFD.Model] = 'piexif Model'
exif_dict_edit_bytes = piexif.dump(exif_dict_edit)
piexif.insert(exif_dict_edit_bytes, 'example_piexil_edit.jpg')
print("============delete===============")
shutil.copy("example.jpg", 'example_piexil_delete_model.jpg')
exif_dict_delete_model = piexif.load("example_piexil_delete_model.jpg")
exif_dict_delete_model['0th'][piexif.ImageIFD.Model] = ''
exif_dict_delete_model_bytes = piexif.dump(exif_dict_delete_model)
piexif.insert(exif_dict_delete_model_bytes, 'example_piexil_delete_model.jpg')
shutil.copy("example.jpg", 'example_piexil_delete_all.jpg')
piexif.remove('example_piexil_delete_all.jpg')
def pyexiftool_usage():
import os
import exiftool
import shutil
current_file_path = os.path.abspath(__file__)
current_dir = os.path.dirname(current_file_path)
exiftool_dir = os.path.join(current_dir, "exiftool")
exiftool_path = os.path.join(exiftool_dir, exiftool.constants.DEFAULT_EXECUTABLE)
print("============PyExifTool===============")
import exiftool
print("============view===============")
with exiftool.ExifToolHelper(executable=exiftool_path) as et:
for d in et.get_metadata("example.jpg"):
for k, v in d.items():
print(f"{k} = {v}")
shutil.copy("example.jpg", 'example_pyexiftool_edit.jpg')
print("============edit===============")
with exiftool.ExifToolHelper(executable=exiftool_path) as et:
et.set_tags(
[os.path.join(current_dir,"example_pyexiftool_edit.jpg")],
tags={"Model": 'PyExifTool Model'},
params=["-P", "-overwrite_original"]
)
shutil.copy("example.jpg", 'example_pyexiftool_delete_model.jpg')
print("============delete===============")
with exiftool.ExifToolHelper(executable=exiftool_path) as et:
et.set_tags(
[os.path.join(current_dir,"example_pyexiftool_delete_model.jpg")],
tags={"Model": ''},
params=["-P", "-overwrite_original"]
)
shutil.copy("example.jpg", 'example_pyexiftool_delete_all.jpg')
print("============delete all===============")
with exiftool.ExifToolHelper(executable=exiftool_path) as et:
delete_all_path = os.path.join(current_dir,"example_pyexiftool_delete_all.jpg")
et.execute(*['-overwrite_original', '-all=', delete_all_path])
if __name__ == '__main__':
exifread_usage()
# exif_usage()
# pillow_usage()
# piexif_usage()
#pyexiftool_usage()
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
5种使用Python查看修改删除EXIF数据的方法.7z (19个子文件)
Exif
example_exif_edit.jpg 3.28MB
example_piexil_edit.jpg 3.28MB
example_pyexiftool_delete_all.jpg 3.12MB
example_exif_delete_model.jpg 3.28MB
.idea
workspace.xml 3KB
misc.xml 189B
Exif.iml 291B
inspectionProfiles
profiles_settings.xml 174B
modules.xml 267B
.gitignore 50B
example_piexil_delete_model.jpg 3.28MB
exif_demo.py 5KB
exiftool
exiftool.exe 10.74MB
example_exif_delete_all.jpg 3.28MB
example_piexil_delete_all.jpg 3.23MB
example.jpg 3.28MB
example_pyexiftool_delete_model.jpg 3.28MB
example.jpg.bak.备份文件 3.28MB
example_pyexiftool_edit.jpg 3.28MB
共 19 条
- 1
资源评论
寻木2016
- 粉丝: 32
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功