Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Ресайз картинок с обрезкой пустого или белого фона [RSS Feed]

#1 Март 16, 2015 17:56:41

Andrew82
Зарегистрирован: 2015-02-12
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Ресайз картинок с обрезкой пустого или белого фона

Коллеги, подскажите как лучше всего сделать задуманное:

Хочу сделать чтоб при загрузке фото обрезалось (если оно больше 300х400 px и ресайзилось на автомате обрезая белый фон если он есть)

исходное фото имеет разрешение 500х500 пикселей


фото которое должно получиться имеет разрешение 336х280 пикселей


Какая библиотека или модуль для Django лучше всего умеет это делать?
Вот нашел несколько не не могу выбрать лучшую:
django-imagekit
easy_thumbnails
django-image-cropping
django-image-cropper
django-imagehandler
django-avatar-crop

Может кто то сталкивался и сможет посоветовать наиболее подходящее решение под мою задачу?

Офлайн

#2 Март 16, 2015 22:26:34

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

Ресайз картинок с обрезкой пустого или белого фона

django-imagekit может это все, только процес автоматической обрезки по белому фону нужно самому написать.
Остальное не проверял, но скорее всего easy_thumbnails тоже подойдет.

Офлайн

#3 Март 17, 2015 09:54:03

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Ресайз картинок с обрезкой пустого или белого фона

Храните оригинальные, resize можно делать в шаблонах, например через это https://github.com/mariocesar/sorl-thumbnail

Офлайн

#4 Март 17, 2015 10:20:12

Andrew82
Зарегистрирован: 2015-02-12
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Ресайз картинок с обрезкой пустого или белого фона

Rebra4
django-imagekit может это все, только процес автоматической обрезки по белому фону нужно самому написать.Остальное не проверял, но скорее всего easy_thumbnails тоже подойдет.

а в плане безопасности, производительности? что быстрее, надежнее и менее ресурсозатратно режет фотки django-imagekit или easy_thumbnails?

Офлайн

#5 Март 17, 2015 10:24:17

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ресайз картинок с обрезкой пустого или белого фона

что быстрее, надежнее и менее ресурсозатратно режет

django-imagekit
easy_thumbnails
django-image-cropping
django-image-cropper
django-imagehandler
django-avatar-crop

Всё это обертки над PIL/PILLOW. Все эти батарейки работают приметно одинаково.
ИМХО, лучше взять PIL и сделать самому. Я не призываю изобретать велосипед, просто сам бы в вашем случае сделал бы по своему.



Офлайн

#6 Март 17, 2015 11:00:47

Andrew82
Зарегистрирован: 2015-02-12
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Ресайз картинок с обрезкой пустого или белого фона

Спасибо! буду разбираться с PIL.
Подскажите еще: к какому сигналу Django привязать обработку фото только при первоначальном сохранении статьи, дабы по pre_save он повторно не резал фотку?

Офлайн

#7 Март 17, 2015 11:40:40

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ресайз картинок с обрезкой пустого или белого фона

Зачем тут сигнал?

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['name', ....]
    def save(self, commit=True):
        if self.instance.id is None:
           ..... делаем тамбнейл картинки
       return super(PostForm, self).save(commit=commit)



Офлайн

#8 Март 17, 2015 12:02:13

Andrew82
Зарегистрирован: 2015-02-12
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Ресайз картинок с обрезкой пустого или белого фона

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

Офлайн

#9 Март 17, 2015 12:39:21

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ресайз картинок с обрезкой пустого или белого фона

А кто не дает ModelAdmin сделать основании этой формы?
Да и у модели save можно переопределить похожим образом.



Офлайн

#10 Март 17, 2015 13:26:12

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Ресайз картинок с обрезкой пустого или белого фона

а потом вам понядобятся фотки в другом размере и опять будете ресайзить по всей базе?

Используйте sorl-thumbnail он вам динамически все отресазит под нужные размеры в шаблоне и в кэш сложит, откуда будет следующий раз грузить.

Офлайн

  • Начало
  • » Django
  • » Ресайз картинок с обрезкой пустого или белого фона[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version