深入nginx之《利用Nginx进行图片切割》

深入nginx之《利用Nginx进行图片切割》

lee 川西阳光里 昨天

利用Nginx进行图片切割

    Nginx可以使用ngx_http_image_filter_module来处理图片的切割裁剪需求,这为动态处理图片提供了支持。

 

    安装方式: 只需要在编译Nginx的时候,添加--with-http_image_filter_module 即可。依赖库:libgd(gd-devel),在centos系统下yum安装即可(推荐使用最新版的)。

 

    image_filter图片处理

        指令: image_filter

        语法:

        image_filter off;

        image_filter test;

        image_filter size;

        image_filter rotate 90 | 180 | 270;

        image_filter resize width height;

        image_filter crop width height;

    默认值:image_filter off;

    执行阶段: location

    含义:

        image_filter off;   关闭此区域图片处理功能,默认是关闭的。

        image_filter test;  确保图片类型是JPEG, GIF, PNG, or WebP,否则返回415错误。

        image_filter size;  以JSON格式输出有关图像的信息。

 

    格式如下:

        { "img" : { "width": 750, "height": 286, "type": "jpeg" } }

 

image_filter rotate 90 | 180 | 270;

    规定度数逆时针旋转,参数值可以是变量。该模式可以单独使用,也可以与resize和crop一起使用。

 

image_filter resize width height;

    按width(宽) height(高)比例将图像缩小到指定的尺寸。如果只减少一个维度,另一个维度可以指定为“ - ”。如果发生错误,服务器将返回代码415(不支持的媒体类型)。参数值可以是变量。当与旋转参数一起使用时,旋转将在缩小后发生。

 

image_filter crop width height;

    按width(宽) height(高)比例减少图像较大的侧面积和另一侧多余的裁剪边缘,如果只减少一个维度,另一个维度可以指定为“ - ”。如果发生错误,服务器将返回代码415(不支持的媒体类型)。参数值可以是变量。当与旋转参数一起使用时,旋转将在缩小之前发生。

 

示例 1:

    找一张jpg文件,取名为 test.jpg,在放到/usr/local/nginx_1.12.2/conf下。进行测试:

location /test.jpg {

image_filter size;

root /usr/local/nginx_1.12.2/conf;

}

 

    输出图片的有关图像信息,json格式,输出如下:

{ "img" : { "width": 750, "height": 286, "type": "jpeg" } }

 

示例 2:

location /test.jpg {

    image_filter resize 150 100; #缩放为150*100的图片

    image_filter rotate 180; #图片逆时针旋转180,图片倒过来了

    root /usr/local/nginx_1.12.2/conf;

}

 

裁剪示例:

location /test.jpg {

    image_filter crop 150 100; #裁剪为150*100的图片

    image_filter rotate 180; #图片逆时针旋转180,图片倒过来了

    root /usr/local/nginx_1.12.2/conf;

 


 

Pingbacks已打开。

引用地址

评论
  1. JimGal JimGal 发布于 2021年3月9日 02:00 #

    <a href="https://iviagrabuy.com/">viagra uk</a> <a href="https://healthytbb.com/">order ivermectin online</a>

发表评论