gpt4 book ai didi

django - 子类化 ImageField 以压缩图像

转载 作者:行者123 更新时间:2023-12-03 07:04:18 26 4
gpt4 key购买 nike

我正在尝试子类化 ImageField 以添加压缩支持。这是我当前的代码。

(现在我假设文件是​​ PNG)。

from django.utils.six import with_metaclass, string_types
from django.core.files.images import ImageFile


class CompressImageField(with_metaclass(models.SubfieldBase, models.ImageField)):
"""
Compress image files on upload-field
"""
def to_python(self, value):
value = super(CompressImageField, self).to_python(value)
if isinstance(value, ImageFile):
im = Image.open(value.name)
im.save(value.name, optimize=True, quality=100)
return ImageFile(value.name)
return value

但是数据库中存储的只是u''

有时to_python()接收一个unicode字符串,有时接收一个ImageField。我猜这是序列化部分,尽管 super(compressImageField, self).to_python(value) 始终返回与 value 相同的类型,并且通常具有未更改的值。

不确定这里会发生什么。任何帮助表示赞赏。希望我已经说得够清楚了。

最佳答案

您可以使用已经执行此操作的 django 包。

关于django - 子类化 ImageField 以压缩图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25055553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com