Как изменить размер файла изображения, загруженного с помощью Django, с помощью модели ImageField? [закрытый]

каков самый простой способ изменить размер файла изображения, загруженного через форму Django, как ImageField?

2 ответов


меня раздражало, что я не мог найти полный рабочий пример, только биты здесь и там. Мне самому удалось найти решение. Вот полный пример, я помещаю его в метод clean () формы (вы также можете переопределить метод models 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

вы можете использовать PIL и изменить размер изображения в YourModel.метод Save.

примеры:

изменить размер изображения при сохранении

http://djangosaur.tumblr.com/post/422589280/django-resize-thumbnail-image-pil

http://davedash.com/2009/02/21/resizing-image-on-upload-in-django/