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

    一、安装

    #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

  • 相关阅读:
    06 is和==的区别 encode()编码 decode()解码
    05 dic的增删改查 字典的嵌套 考试题dic.get()的相关使用
    03 编码 int ,bool,str的常用操作 主要讲str
    01 基本数据类型 变量 if语句
    04 列表的增删改查 常用方法 元祖 range
    02 while循环 格式化输出 运算符
    多校2 Harmonious Army hdu6598 网络流
    P3159 [CQOI2012]交换棋子 网络流
    P2172 [国家集训队]部落战争 最大流
    P2402 奶牛隐藏 网络流
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3919336.html
Copyright © 2011-2022 走看看