ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

image_filter_jpeg_quality не работает без указания image_filter rotate|resize|crop


  • To: nginx-ru@xxxxxxxxx
  • Subject: image_filter_jpeg_quality не работает без указания image_filter rotate|resize|crop
  • From: mxs kolo <kolomaxes@xxxxxxxxx>
  • Date: Wed, 19 Sep 2012 12:39:31 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=R9Iu3Cwpx1PiYAL7IQUtT7YFck+w102241Yd2b1qTww=; b=NNWytpQDh84NmnavNuxiUd2jyKk1gRKCeNmEPD72mVy8UMkHPJ9s9jo+zS2HX3rXY4 IZpdkoSjP78u8Lo5nvqwFy8BCxevMZPOuUc6K1CA260pfCwJ6dUsN29FwHwu8mtR4YGe GNDXLj/skOEeHdBaJKToZF3n9JlcjGurQT/U0CGD0NU23hGLCDOH3NZcmN94t8K6zrBQ PcnG5INX8dhwG3sg25EoW6qisAdgdGAZnu7kCV+kb0oAZnlIvZfQZwoCqGLqyzXqtuO9 e8BIpdlw7aWMwU+n7Ctd/KRC/CSCQBLMphJ4UoWaYa7YvcRR064PRW/Xgt7FewHQRPtz ETiw==

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

Attachment: ngx_http_image_filter_module_1_3_6.filter_quality_only.patch
Description: Binary data

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.