Django枕头保存缩略图图像

时间:2017-11-20 08:20:01

标签: python django image pillow

当尝试仅保存表单发布图像的缩略图版本时,我收到以下错误。 'JpegImageFile' object has no attribute 'write'

使用以下任一方法都会产生相同的错误。我认为我在这里缺少的是某种写模式定义。 Image.open只接受'r'模式。

模型保存方法

def save(self, *args, **kwargs):
    img = Image.open(self.image)
    img.thumbnail((250, 250), Image.ANTIALIAS)
    img.save(img, 'JPEG')   
    super(EventPost, self).save()

Formviews form_valid方法

def form_valid(self, form):
    img = Image.open(form.cleaned_data['image'])
    img.thumbnail((250, 250), Image.ANTIALIAS)
    img.save(img, 'JPEG')
    form.save(commit=True)
    return super(FormPage, self).form_valid(form)

1 个答案:

答案 0 :(得分:0)

我认为你需要的是:

img = img.thumbnail((250,250), Image.ANTIALIAS)

然后保存,如果您只想保存缩略图。并且图像的save()方法接受路径作为第一个参数而不是文件:

img.save("path/to/save/image", "JPEG", quality=from1to100, optimize=bool, progressive=bool)