image_filter crop
Igor Sysoev
igor на sysoev.ru
Пт Окт 14 10:57:24 UTC 2011
On Fri, Oct 14, 2011 at 02:18:19AM -0400, ruNovel wrote:
> Доброго дня.
> Возникли следующие вопросы:
>
> Имеется сервер на Nginx 1.0.8 который
> обрезает и раздает картинки.
>
> конфиг:
>
> location ~ ^/image/(\d+)/(\d+)_(\d+|-)x(\d+|-)(\.(?:jpg|gif|png))$
> {
> default_type image/jpeg;
> alias /var/www/localhost/www/wallpapers/$1/$2$5;
> image_filter_buffer 256M;
> image_filter_jpeg_quality 90;
> image_filter crop $3 $4;
> expires 1d;
> error_page 404 /error/404;
> }
Это лучше оформить так:
location /image/ {
location ~ ^/image/(\d+)/(\d+)_(\d+|-)x(\d+|-)(\.(?:jpg|gif|png))$
....
}
}
> 1.Как можно средствами самого nginx
> получить оригинальный размер картинки,
> и запретить crop картинки если width и height
> больше чем width и height оригинала картинки?
> Или есть другой вариант для
> ограничения?
Crop не должен делаться, если картинка меньше.
> 2. Что делает директива image_filter size ? С
> помощью нее можно получить width и height
> картинки?
http://nginx.org/ru/docs/http/ngx_http_image_filter_module.html#image_filter
> 3. Сколько выделить памяти для
> буфера(image_filter_buffer), если обрезаются
> картинки размер которых не больше
> 5000x4000px?
Это зависит от картинки. Ищите в логе ошибки
"image filter: too big response: XXXX".
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru