Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал? [RSS Feed]

#1 Дек. 24, 2009 00:30:26

tezro
От:
Зарегистрирован: 2009-12-09
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?

В общем, есть такая вешь как sorl-thumbnail - http://thumbnail.sorl.net/docs/

Для тех, кто не знаком, потому как в форуме ни одного упоминания, поясню - это приложение для джанго, которое на базе ImageField создаёт несколько типов полей для работы с изображениями, упрощая создание и кеширование изображений, файлов и превью к ним.

Надежды на ответ мало :) Но я попробую…

Есть поле ThumbnailField - http://thumbnail.sorl.net/docs/#thumbnailfield Сохраняет изображение и превью к нему, изменяя его размеры.
Есть поле ImageWithThumbnailsField - http://thumbnail.sorl.net/docs/#imagewiththumbnailsfield Сохраняет исходное изображение, превью к нему и, по желанию, несколько дополнительных миниатюр.

Вопрос: а как мне из загруженного в админке файла сделать 3 миниатюры (большую, среднюю, маленькую) не сохраняя оригинал. Кстати, если кто-то знает другое решение, а не набазе этого приложения, будет здорово.



Отредактировано (Дек. 24, 2009 00:33:05)

Офлайн

#2 Дек. 24, 2009 01:00:48

tezro
От:
Зарегистрирован: 2009-12-09
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?

Перезагрузка метода save(self) не подходит, так как джанга пляшет от имени оригинала, таки образом, сохраняя несколько изображений на диске сохранится 1 оригинал и N превьюшек - каждый раз при сейве на диске не будет оригинала.



Офлайн

#3 Дек. 24, 2009 12:28:34

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?

это не есть правильно, все приложения такого плана сохраняют оригинал, ибо если ты захочешь новые тумбы добавить, то с чего ты их будешь генерить как не с оригинала) + эти аппы могут генерить “по вызову”, а не сразу, что опять таки требует наличие оригинала.

ThumbnailField имеет extra_thumbnails параметр

Офлайн

#4 Дек. 25, 2009 02:41:58

tezro
От:
Зарегистрирован: 2009-12-09
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?

slav0nic
…захочешь новые тумбы добавить, то с чего ты их будешь генерить как не с оригинала) + эти аппы могут генерить “по вызову”, а не сразу, что опять таки требует наличие оригинала.
Логично. Принято.

slav0nic
ThumbnailField имеет extra_thumbnails параметр
tezro
…превью к нему и, по желанию, несколько дополнительных миниатюр.
Я просто волнуюсь, что файлы с разрешением 3000х2000 засрут хостинг. Но, окей.



Офлайн

#5 Дек. 25, 2009 11:48:33

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?

ThumbnailField с extra_thumbnails на сколько я понимаю будет ресайзить 3000х2000 до нужно размера + можно ограничить макс размер

Офлайн

#6 Дек. 26, 2009 22:50:27

tezro
От:
Зарегистрирован: 2009-12-09
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?

slav0nic
ThumbnailField с extra_thumbnails на сколько я понимаю будет ресайзить 3000х2000 до нужно размера + можно ограничить макс размер
Всё так. Ресайзится оргомный оригинал в несколько превью. Но оргомный оригинал всё равно присутствует…



Офлайн

#7 Дек. 26, 2009 23:03:50

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?

Можно переопределить save к модели, и там удалять оригинал.

def save(self):
super(ModelName, self).save()
#удаляем оригинал
Только не надо делать thumbnail_cleanup, иначе он не найдёт оригинал и поуничтажает нагенерённые копии.

Офлайн

#8 Дек. 27, 2009 04:58:12

tezro
От:
Зарегистрирован: 2009-12-09
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?

Ferroman
Можно переопределить save к модели, и там удалять оригинал.
def save(self):
super(ModelName, self).save()
#удаляем оригинал
Только не надо делать thumbnail_cleanup, иначе он не найдёт оригинал и поуничтажает нагенерённые копии.
Не не, это понятно. Удалять не надо. Я вот думаю, может ресайзить руками оригинал под скажем 2000х3000, удалять оригинал и переименовывать ресайз. Ну просто 20 фотографий по 5-10 мб это уже много… Да и не нужны оригиналы на серваке.



Офлайн

#9 Дек. 27, 2009 11:20:35

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?

В чем ThumbnailField не угодил?

ThumbnailField resizes the source image before saving.

Офлайн

#10 Дек. 27, 2009 16:45:10

tezro
От:
Зарегистрирован: 2009-12-09
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?

Ferroman
В чем ThumbnailField не угодил?
ThumbnailField resizes the source image before saving.
Ресайзит перед сохранением… и?
Сделает 2 файла: source.jpg и source_300x200.jpg.



Офлайн

  • Начало
  • » Django
  • » Sorl // Как сохранять несколько видов превьюшек, не сохраняя оригинал?[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version