• 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

  • 相关阅读:
    10年后编程还有意义吗?
    专访Jeffrey Richter:Windows 8是微软的重中之重
    x86汇编指令脚本虚拟机
    基于容器的持续交付管道
    NET Core 整合Autofac和Castle
    数据结构与算法1
    Redis集群
    react + iscroll5
    MongoDB
    WebComponent
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3919336.html
Copyright © 2020-2023  润新知