1 回答
TA贡献1794条经验 获得超8个赞
我还需要图像中的 EXIF 信息,但找不到好的解决方案。这就是为什么我为 Django 开发了一个字段,它使用exiftool提取 EXIF 信息并将它们存储在数据库中:django-exiffield。
简单安装django-exiffield,确保exiftool已安装并向您的模型添加一个新字段:
from exiffield.fields import ExifField
class UploadedImage(models.Model):
image = models.ImageField(
"Uploaded image", upload_to=scramble_uploaded_filename,
exif = ExifField(
source='image',
)
由于在内部ExifField使用JSONField,您可以使用适当的键访问各个值,例如print(image.exif['Model'])。
如果您需要通过某些 EXIF 值过滤图像或需要经常访问其中的某些值,则对它们进行非规范化是有意义的。该模块提供了一种简单的方法来做到这一点,例如。非规范化相机模型:
from exiffield.fields import ExifField
from exiffield.getters import exifgetter
class UploadedImage(models.Model):
image = models.ImageField()
camera = models.CharField(
editable=False,
max_length=100,
)
exif = ExifField(
source='image',
denormalized_fields={
'camera': exifgetter('Model'),
},
)
您可以在其自述文件中找到有关该模块的更多信息。
如果您有任何问题,请随时提出,如果模块有任何问题,请在 GitHub 存储库中打开一个问题!
添加回答
举报