python - 在 Django Admin 中上传图像时丢失元数据
问题描述
我想在我显示的图像的 exif 数据中添加版权声明。
我正在使用django-imagekit
和piexif
库。
当我上传然后在我的 Django 管理员中处理它们时,我无法保存或丰富图像的元数据。
这是我的模型:
class Still(models.Model):
image = ProcessedImageField(upload_to='images',
processors=[ResizeToFit(1024)],
format='JPEG',
options={'subsampling': 0, 'optimize': True, 'quality': 85}
)
img_th_watermarked = ImageSpecField(source='image',
processors=[ResizeToFit(width=612), TextOverlayProcessor(), ExifCopyrightProcessor()],
)
这是处理器:
def add_copyright_exif(image):
copyright = "© {} my name".format(datetime.now().year)
try:
exif_dict = piexif.load(image.info["exif"])
except KeyError as k:
exif_dict = {"0th":{}}
exif_dict["0th"][piexif.ImageIFD.Copyright] = copyright
exif_bytes = piexif.dump(exif_dict)
new_image = image.copy()
new_image.info["exif"] = exif_bytes
print(new_image.info)
return new_image
class ExifCopyrightProcessor(object):
def process(self, image):
return add_copyright_exif(image)
print
似乎显示正确的信息,其他处理器工作正常,但元数据在途中丢失。我也尝试删除格式选项。我不介意元数据在该ProcessedImageField
步骤中丢失,但我应该能够在该ImageSpecField
步骤中添加新信息。
图像和缓存版本存储在 S3 上。
在此先感谢您的帮助。
解决方案
推荐阅读
- javascript - 正在显示 HTML 图像文本而不是图像
- apache-spark - 在 spark-submit 上获取多条消息“寻求最早并重置分区主题分区的偏移量”
- html - 如何修复文本不对齐?
- html - 将查看区域之间的图像与左右文本对齐
- python - 为什么使用函数 scipy.stats.median_absolute_deviation 计算的 MAD 与我所做的函数不同?
- r - 如何使用 Reticulate 在 R shiny App 中导入 Python 函数以供下载 App
- amazon-dynamodb - 在 DynamoDB 中创建 Web 流量日志的最佳方法是什么?
- javascript - 在 Next JS 中更新路由器查询而不触发页面更改事件
- html - 如何为循环折叠的 div 设置不同的值
- ansible - 警告:Ansible 评估裸变量。我该如何正确实施?