深入nginx之《利用Nginx进行图片切割》
利用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;
|
<a href="https://iviagrabuy.com/">viagra uk</a> <a href="https://healthytbb.com/">order ivermectin online</a>