Django在调整大小时以字节为单位增加图像大小

时间:2014-02-24 06:38:41

标签: python django image

方案是,客户端将图像上传到我的Django服务,Django服务需要将图像尺寸调整为600 x 600,并且应减少图像大小(以字节为单位)。

这是我使用的代码:

import StringIO
from django.core.files.uploadedfile import InMemoryUploadedFile
image.thumbnail((size, size), Image.ANTIALIAS)

然而,我发现有时甚至会以字节为单位增加图像大小。有时,客户端上传尺寸为1000 x 1000且尺寸为80kb的图片,在执行上述行生成缩略图后,缩略图为600 x 600,尺寸为130kb。我期待类似50kb(压缩后至少小于80kb

请帮助

1 个答案:

答案 0 :(得分:1)

试试这个,可能这个方法可以帮到你。

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, h0 = 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