[Ответить в тред] Ответить в тред

09/07/16 - Новое API для капчи - внимание разработчикам приложений
03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 9 | 1 | 6
Назад Вниз Каталог Обновить

Сервер картинок - пересжатие на лету Аноним 27/06/16 Пнд 15:55:04  781255  
14670321044120.jpg (41Кб, 604x392)
К обсуждению приглашаются все: бэкендщики / фронтедщики / мобильщики (вам ли не знать как работать с разными разрешениями).

Дано:
1) nginx с настроенным кэширование
2) бэкенд который отдает картинки по url = /image/<imageid>?w=<width>&h=<height>
3) куча мобильных-клиентов/браузеров с разными разрешениями экранов и плотностью пикселей
4) клиенты не привередливы к размеру возвращаемой картинки (можно вернуть с шириной/высотой +- 20% от запрашиваемой)
Задача:
Оптимизировать использование nginx-кэша (и разгрузить бэкенд)

Основная проблема, что в размер могут передать ЧТО-УГОДНО (от 50 до 1000) и нужно пересжать в этот размер.
Поэтому сейчас я пытаюсь разбить размеры на классы (округлить) и делать редирек на этот новый размер
(в итоге получается больше попаданий в кэш).

Например приходят запросы картинок:
/image/42?w=120&h=60 -> (301 редирект) -> /image/42?w=100&h=50 (nginx кеширует редирект)
/image/42?w=110&h=55 -> (301 редирект) -> /image/42?w=100&h=50 (nginx кеширует редирект)
/image/42?w=100&h=50 -> реальный запрос на диск и пересжатие (ответ кэшируется в nginx)

Основные вопросы:
Как правильно бить на классы (сейчас использую экспоненту, но часто попадаются неудачные входные данные и картинка получается сильно меньше запрашиваемой)?
Какой есть подход получше?
Аноним 27/06/16 Пнд 15:57:03  781257
за 10000 рублей
Аноним 27/06/16 Пнд 16:12:10  781267
Вроде к nginx можно подрубать lua https://habrahabr.ru/company/2gis/blog/199504/
Аноним 27/06/16 Пнд 16:35:40  781282
>>781257
Мне идея нужная (типа хорошей формулы пересчета размеров картинки),
а НЕ еба-фреймворки 100-in-1 или что-бы ты за меня бэкенд делал.
Аноним 27/06/16 Пнд 17:56:30  781318
>>781267
> в nginx можно подрубать lua
А чем это поможет?
Сейчас непонятно "по какому алгоритму редиректит?", а не "на каком уровне это делать?".

Хотя если у тебя есть идеи как написать этот скрипт хотя бы для lua, я бы послушал.
Аноним 27/06/16 Пнд 21:02:58  781469
>>781255 (OP)
Алексей? Ты всеже рискнул идею воплотить?
Аноним 27/06/16 Пнд 21:34:46  781520
>>781318
По алгоритму поиска ближайшего по метрике "размер" из уже существующих размеров нужной картинки. kNN на плоскости.
Аноним 27/06/16 Пнд 22:06:44  781572
>>781469
> рискнул идею воплотить?
Возможно, напомни в чем она заключалась?
Аноним 27/06/16 Пнд 22:17:09  781590
>>781572
Ты же не он, а жаль
>добынй прокси для картинок с возможностью обработки изображений (я же еще и имейдж процессинг фаг). Типа есть картинка где-то оче большая, то можна ее через это прокси уменьшить, можна развернуть под некоромым углом, автокроп краев.
>а вся суть в таком - ссылку которую пользователь вставляет куда ему нужно будeт вида :
> hipwim.hk/crop/https://2ch.hk/pr/thumb/617731/14535526701480s.jpg
>
hipwim.hk/resize_100x100/https://2ch.hk/pr/thumb/617731/14535526701480s.jpg
> hipwim.hk/rotate_45/https://2ch.hk/pr/thumb/617731/14535526701480s.jpg
>
hipwim.hk/crop/rotate_45/https://2ch.hk/pr/thumb/617731/14535526701480s.jpg
>* hipwim.hk/crop/rotate_45/resize_100x100/https://2ch.hk/pr/thumb/617731/14535526701480s.jpg
>Вот такая штука. Есть там и веб-гуй, для комфортной генерации данніх урлей, а можна руками делать.
Аноним 29/06/16 Срд 14:48:48  783128
bump

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 9 | 1 | 6
Назад Вверх Каталог Обновить

Топ тредов