@IIITRIX

Как изменять размер на лету?

Подскажите, как изменять размер изображения на лету!
к примеру
имеем поле в моделе пользователя
picture = models.ImageField(_('Аватар'), upload_to=avatar_upload_to, null=True, blank=True)

при переходе по ссылке
http://localhost:8000 /m/users/avatar.jpg
открывается аватар загруженный пользователем
Как сделать чтоб при переходе на
http://localhost:8000 /m/users/crop/30x30/avatar.jpg

Происходил ресайз картинки без сохранения.
Если мы подставим любое значение вместо 30 оно сразу изменит ресайз, соответственно не выше оригинально размера!
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
NeiroNx
@NeiroNx
Программист
Согласен что сервер не должен заниматься проблемами клиента клиент должен отправлять изображение с нужными размерами, а сервер его просто проверит и ответит "да" или "нет".
Подготовить на стороне клиента через JS( https://fengyuanchen.github.io/cropperjs/ ) или просто указать параметры.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Мне кажется это нужно делать в самом HTML.
Следующее предложение 100% не правильное, но вероятнее всего рабочее: в роуте /m/users/crop/30x30/ возвращать копию той-же страницы, что рендерится при переходе на /m/users/, только для тега img указать дополнительные атрибуты width и height. Вообще правильнее просто передавать эти атрибуты самим django, чтобы не дублировать страницу, но я не знаю как это делать ¯\_(ツ)_/¯
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы