zoukankan      html  css  js  c++  java
  • Nginx之http_image_filter_module模块使用

    原文:http://blog.csdn.net/jiao_fuyou/article/details/37598441

    一、安装

    #yum install gd-devel  
    #  
    #./configure --prefix=/usr/local/nginx       
    #  --with-debug                              
    #  --with-http_stub_status_module            
    #  --with-http_ssl_module                    
    #  --with-http_realip_module                 
    #  --with-http_image_filter_module           
    #  --with-pcre=../pcre-8.21                  
    #  --add-module=../ngx_devel_kit-0.2.19      
    #  --add-module=../lua-nginx-module-0.9.8    
    #  --add-module=../echo-nginx-module         
    #  --add-module=../redis2-nginx-module       
    #  --add-module=../set-misc-nginx-module  

    二、配置

    location ~* (.*.(jpg|gif|png))!(.*)!(.*)$ {  
        set $width   $3;  
        set $height  $4;  
        rewrite "(.*.(jpg|gif|png))(.*)$" $1;  
    }  
      
    location ~* /image/.*.(jpg|gif|png)$ {  
        root   /home/jfy/web/;  
        #image_filter off;  
        #image_filter test;  
        #image_filter size;  
        #image_filter rotate 90;  
        image_filter resize $width $height;  
        #image_filter crop 300 200;  
        image_filter_buffer 10M;  
        image_filter_interlace on;  
        image_filter_jpeg_quality 95;  
        image_filter_sharpen 100;  
        image_filter_transparency on;  
    }  

    说明

    image_filter off;  
    #关闭模块  
      
    image_filter test;  
    #确保图片是jpeg gif png否则返415错误  
      
    image_filter size;  
    #输出有关图像的json格式:如下显示{ "img" : { "width": 100, "height": 100, "type": "gif" } } 出错显示:{}  
      
    image_filter rotate 90|180|270;  
    #旋转指定度数的图像,参数可以包括变量,单独或一起与resize crop一起使用。  
      
    image_filter resize width height;  
    #按比例减少图像到指定大小,公减少一个可以另一个用"-"来表示,出错415,参数值可包含变量,可以与rotate一起使用,则两个一起生效。  
      
    image_filter crop width height;  
    #按比例减少图像比较大的侧面积和另一侧多余的载翦边缘,其它和rotate一样。没太理解  
      
    image_filter_buffer 10M;  
    #设置读取图像缓冲的最大大小,超过则415错误。  
      
    image_filter_interlace on;  
    #如果启用,最终的图像将被交错。对于JPEG,最终的图像将在“渐进式JPEG”格式。  
      
    image_filter_jpeg_quality 95;  
    #设置变换的JPEG图像的期望质量。可接受的值是从1到100的范围内。较小的值通常意味着既降低图像质量,减少传输数据,推荐的最大值为95。参数值可以包含变量。  
      
    image_filter_sharpen 100;  
    #增加了最终图像的清晰度。锐度百分比可以超过100。零值将禁用锐化。参数值可以包含变量。  
      
    image_filter_transparency on;  
    #定义是否应该透明转换的GIF图像或PNG图像与调色板中指定的颜色时,可以保留。透明度的损失将导致更好的图像质量。在PNG的Alpha通道总是保留透明度。

    四、几个规则,可能有用。

    匹配全站所有的结尾图片  
    ---------------------------------------------------------  
            location ~* .(jpg|gif|png)$ {  
                image_filter resize 500 500;  
            }  
    ---------------------------------------------------------  
      
    匹配某个目录所有图片  
    ---------------------------------------------------------  
            location ~* /image/.*.(jpg|gif|png)$ {  
                image_filter resize 500 500;  
            }  
    ---------------------------------------------------------  
      
    再比如用url来指定  
    ---------------------------------------------------------  
            location ~* (.*.(jpg|gif|png))!(.*)!(.*)$ {  
                set $width      $3;  
                set $height     $4;  
                rewrite "(.*.(jpg|gif|png))(.*)$" $1;  
            }  
              
            location ~* /image/.*.(jpg|gif|png)$ {  
                image_filter resize $width $height;  
            }  
    ---------------------------------------------------------  
    http://172.16.18.114/image/girl.jpg!300!200  
    自动将原图缩放为300*200的尺寸 

    详细效果可参见:http://cwtea.blog.51cto.com/blog/4500217/1333142

  • 相关阅读:
    mysql case when用法
    php+mysql实现事务回滚
    go安装windows源码
    【C++】子类访问父类typedef的问题
    【C++】STL算法之remove_if
    MySQL常用函数总结
    Apriori算法+python实现
    数据库索引理论
    Linux基本命令
    JAVA 多线程
  • 原文地址:https://www.cnblogs.com/shihaiming/p/6279878.html
Copyright © 2011-2022 走看看