zoukankan      html  css  js  c++  java
  • 转: nginx使用image_filter生成缩略图 -- fasdfs海量图片缩略图整合

    2016年08月22日 17:34:055282人阅读 评论(2) 收藏 举报
     分类:
     

    目录(?)[+]

    http_image_filter_module

    http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息。


    1.1 查看有没有安装

    # /usr/local/nginx/sbin/nginx -V 


    nginx version: nginx/1.5.0
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 
    TLS SNI support enabled
    configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=/usr/local/src/nginx/fastdfs-nginx-module/src


    2 模块说明

    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通道总是保留透明度。


    3 安装

    3.1 安装gd,HttpImageFilterModule模块需要依赖gd-devel的支持

    # yum -y install gd-devel


    3.2 将http_image_filter_module包含进来

    # cd /usr/local/src/nginx

    # ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=/usr/local/src/fastdfs/fastdfs-nginx-module/src --with-http_image_filter_module
    #  make && make install


    4 配置nginx

    4.1 正常缩放

    # vi /usr/local/nginx/conf/nginx.conf

    location ~* /img {
        root /data0; 
        image_filter resize 150 100;
        image_filter rotate 90;      
    }


    http://img2.mydomain.com/img/w8.png



    4.2 fastdfs配置

    a)架构与安装

    参考:http://blog.csdn.net/clevercode/article/details/52276169.


    b)配置

    [plain] view plain copy
    1. location ~ group1/M00/(.+)_([0-9]+)x([0-9]+).(jpg|gif|png) {  
    2.             alias /data0/fastdfs/storage/storage0/data;  
    3.             ngx_fastdfs_module;  
    4.             set $w $2;  
    5.             set $h $3;             
    6.   
    7.             if ($w != "0") {  
    8.                 rewrite group1/M00(.+)_(d+)x(d+).(jpg|gif|png)$ group1/M00$1.$4 break;  
    9.             }  
    10.   
    11.             if ($h != "0") {  
    12.                 rewrite group1/M00(.+)_(d+)x(d+).(jpg|gif|png)$ group1/M00$1.$4 break;  
    13.             }  
    14.   
    15.             #根据给定的长宽生成缩略图     
    16.             image_filter resize $w $h;  
    17.               
    18.             #原图最大2M,要裁剪的图片超过2M返回415错误,需要调节参数image_filter_buffer    
    19.             image_filter_buffer 2M;  
    20.   
    21.             #try_files group1/M00$1.$4 $1.jpg;  
    22.         }  
    23.           
    24.   
    25.         location ~ group1/M00/(.+).?(.+){  
    26.            alias /data0/fastdfs/storage/storage0/data;  
    27.            ngx_fastdfs_module;  
    28.         }  



    c)访问原图.

    http://img2.mydomain.com/group1/M00/00/00/wKhlhFe7DCeAcOvYAAaxqYLWRQk392.png


    d)访问缩略图
    http://img2.mydomain.com/group1/M00/00/00/wKhlhFe7DCeAcOvYAAaxqYLWRQk392_80x60.png


    • 相关阅读:
      Visual C++6.0 调用Visual Basic 6.0写的Microsoft Communications Control(ActiveX)的使用疑难及解决办法
      Associating Icons with a Category 与 恶作剧软件 有关系吗?
      WPF/Silverlight Button Styles and Templates
      Notepad++ 备忘录一
      冥思苦想,木疙瘩也能崩出个豆:扯一下各大软件的用户体验
      生活小窍门。
      Bug验证:.Net 4 下,貌似发现一个bug。如果是真,.Net组的员工该打屁股。
      两台硬件和软件配置完全相同的机器A和B,现在要用系统自带的Copy功能把A上的一个文件,复制到B上。在哪台机器上执行程序,效率更高?
      WPF 遍历 DataGrid 每行的控件
      IE ActiveX Control 和RIA
    • 原文地址:https://www.cnblogs.com/xmanblue/p/8574920.html
    Copyright © 2011-2022 走看看