2017-02-09 12 views
0

Как изменить размер изображения перед загрузкой его в Django?Изменить размер изображения в Django перед загрузкой?

У меня есть экран, на котором пользователь может загрузить изображение, но перед его загрузкой я хотел бы масштабировать его до 500 500.

В PIL я могу легко сделать это на месте с помощью:

from PIL import Image 

img = Image.open("/Users/Admin/Desktop/example.jpg") 
img = img.resize((750,500),Image.ANTIALIAS) 
img.save() 

Как бы я идти об этом в представлении Django без необходимости загружать изображение первого?

+0

Возможно, вы хотите изменить размер изображения перед его хранением? Вы не можете заставить пользователей не отправлять изображения других размеров. – Marat

+0

Используйте html5 для изменения размера перед загрузкой на сервер. –

ответ

2

Прежде всего, если вы хотите что-либо сделать с этим файлом на своем сервере, файл необходимо загрузить. Это единственный способ.

Если то, что вы хотите сделать, действительно манипулирует изображением перед его загрузкой, вам нужно сделать это в браузере, на стороне клиента. Таким образом, поиск Google с термином «изменение размера изображения браузера перед загрузкой» поможет вам. Вам нужно будет отредактировать изображение с javascript, а затем отправить его на свой сервер.

Но, если вы хотите управлять уже загруженным изображением, pillow (поддерживаемая вилка PIL, о которой вы упомянули) - это тот инструмент, который вам нужен. После отправки формы (я предположил, что вы получаете изображение через форму), файл будет на вашем сервере, и ссылка на этот файл будет доступна в вашем request.FILES по адресу view. Вы можете делать все, что хотите, с этим изображением, а затем сохранить его - в исходное местоположение на диске или другое, в соответствии с вашими требованиями -.