如何使用ImageField模型调整使用Django上传的图像文件的大小?

时间:2013-03-20 09:30:52

标签: django image upload resize photo

将通过Django表单上传的图像文件调整为ImageField的最简单方法是什么?

2 个答案:

答案 0 :(得分:24)

我很生气,我找不到一个完整的工作示例,只有这里和那里的位。我设法将解决方案放在一起。这是完整的例子,我把它放在表单的clean()方法中(你也可以用完全相同的方式覆盖模型save()方法 - 改变ImageField的文件属性)。

import StringIO
from PIL import Image

image_field = self.cleaned_data.get('image_field')
image_file = StringIO.StringIO(image_field.read())
image = Image.open(image_file)
w, h = image.size

image = image.resize((w/2, h/2), Image.ANTIALIAS)

image_file = StringIO.StringIO()
image.save(image_file, 'JPEG', quality=90)

image_field.file = image_file

答案 1 :(得分:5)