2014-02-17 3 views
1

Я работаю над фотографическим сайтом в Django.Как создать эскизы высокого разрешения только для некоторых псевдонимов?

Поскольку сайт «отзывчивый», мы предварительно генерируем многочисленные размеры каждого изображения, используя набор aliases. В частности, 7 изображений с различными ширинами, начиная с 960 до 3,840 пикселей в ширину с шагом 480 пикселей. Эти изображения будут использоваться, когда фотография отображается в полноэкранном режиме (как, например, в списке).

Сайт также создан для дисплеев/устройств HiDPI/Retina. Итак, мы хотели бы использовать настройку: THUMBNAIL_HIGH_RESOLUTION, чтобы автоматически подготовить версии @ 2x некоторые из псевдонимов, но, самое главное, НЕ для псевдонимов, используемых для создания диапазона из 7 изображений, изображения на экране выше.

Поскольку этот проект призван показать работу фотографа, мы используем довольно качественные настройки, поэтому каждое изображение начинается примерно с 3840x2160 пикселей в размере, и через наше предварительное поколение становится примерно 50 МБ JPG , К сожалению, почти 50% этого - чистые отходы, потому что мы используем только версии @ 2x на изображении, когда показываем списки или коллекции изображений на странице. Они, как правило, только 300px/600px в ширину и относительно крошечные по сравнению с нашими «полноэкранными» наборами изображений.

Мы рассмотрели возможность отключения THUMBNAIL_HIGH_RESOLUTION и просто создание новых псевдонимов для версий @ 2x, но неясно, как создавать правильные имена файлов с псевдонимом.

Итак, как мы можем предварительно генерировать изображения HiDPI/Retina с помощью стандартного инфикса @ 2x (или _2x) только для некоторых из наших псевдонимов?

UPDATE: теперь это функция easy_thumbnails! В псевдонимах вы можете использовать HIGH_RESOLUTION: False, чтобы отключить их создание, или HIGH_RESOLUTION: True, чтобы заставить их. Спасибо @ChrisSmiley!

+0

Я столкнулся с подобными проблемами, используя аналогичные пакеты Django, и недавно решил создать свою собственную библиотеку https://github.com/miki725/django-multires/tree/develop. Это позволяет автоматически обрабатывать подмножество псевдонимов (я называю их рецептами). Но в случае, если вам понадобится доступ к неавтоматически обработанным изображениям позже, он также может генерировать ленивые URL-адреса, которые будут обрабатывать изображение по запросу. Его все еще очень свежие и много улучшений, чтобы идти в коде и в документах, но мне бы понравились любые отзывы/вопросы/вклады. – miki725

+0

@ miki725 выглядит круто! Я надеюсь на решение с использованием easy_thumbnails, потому что это уже зависимость от других приложений, которые мы используем, но вы похожи на новый подход к проекту. Я просто снялся в этом эпизоде ​​(я первый, по-видимому =) и буду рассматривать его для будущих проектов. – mkoistinen

ответ

1

В easy-thumbnails-1.3 инфикс @2x в настоящее время жестко закодирован, но в следующей версии пользователи могут выбрать другой инфикс через настройку конфигурации. Посмотрите на это pull request для деталей.

Чтобы ответить на ваш второй вопрос, в настоящее время невозможно создать эскизы Retina только для определенных записей. easy-thumbnails имеет политику «все или ничего», но это теоретически может быть изменено.

+0

Спасибо, юр. Похоже, мне придется найти другой путь. – mkoistinen

+1

Теперь вы можете выбрать другой инфикс через настройку '' THUMBNAIL_HIGH_RESOLUTION''. Вы также можете сгенерировать (или не сгенерировать) миниатюры Retina для изображения с помощью параметра '' HIGH_RESOLUTION'' в вашем псевдониме/эскизе. – SmileyChris

Смежные вопросы