image_filter_jpeg_quality не работает без указания image_filter rotate|resize|crop
mxs kolo
kolomaxes at gmail.com
Wed Sep 19 08:39:31 UTC 2012
Hi all
У меня не получилось сделать так, чтобы модуль
ngx_http_image_filter_module просто пережимал jpeg, без вращения его
или ресайза.
Я пробовал на версиях nginx 1.3.6, 1.3.5, 1.2.3
Возможно что я не прав и я просто не понял как правильно сделать
конфиг, вот его кусок:
location ~* \.(jpg|jpeg)$ {
image_filter_buffer 10M;
image_filter_jpeg_quality 75;
image_filter_sharpen 25;
root /var/www/vhosts/some-domain-here.ru/httpdocs/;
}
Изображение отдаётся без пережатия.
Но если добавить в location строку
image_filter rotate 180;
то и картинка повернётся и jpg станет меньше по размеру и пошарпится.
Но насколько я вижу по исходному коду такая функциональность вообще
не предусмотрена без указания image_filter rotate|resize|crop.
Дело в том что ngx_http_image_body_filter() не будет работать пока не
указан фильтр, а фильтр задаётся только в ngx_http_image_filter() и
там нет случая для "только quality"
В аттаче есть патч которым я решил эту проблему для себя.
Мне пришось добавить новый тип фильтра - quality_only.
Мой конфиг теперь выглядит так:
location ~* \.(jpg|jpeg)$ {
image_filter quality_only;
image_filter_buffer 10M;
image_filter_jpeg_quality 75;
image_filter_sharpen 25;
root /var/www/vhosts/some-domain-here.ru/httpdocs/;
}
Я был -бы очень признателен, если-бы кто-то посмотрел патч на предмет ошибок.
b.r.
Maxim Kozin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ngx_http_image_filter_module_1_3_6.filter_quality_only.patch
Type: application/octet-stream
Size: 1284 bytes
Desc: not available
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20120919/df51912d/attachment.obj>
Подробная информация о списке рассылки nginx-ru