VPS优选
    VPS优选
    • 首页
    • 国内云服务
      • 阿里云
      • 腾讯云
      • 华为云
      • 天翼云
    • VPS优惠
      • 美国VPS
      • 香港VPS
      • 日本VPS
    • 经验技巧
      • 支付
      • 工具
      • 域名
      • Linux
      • Mac
    • 网站主题
      • WordPress
      • Typecho
    • 开源代码
    VPS优选
    首页 » 经验技巧 » 工具 » 使用Nginx实时剪裁图片
    工具

    使用Nginx实时剪裁图片

    2022年08月10日
    收录于话题
    #nginx 2

    需求

    我们经常需要处理图片,对图片进行压缩,剪切。
    例如用户在个人中心上传图片,作为个人头像。此时头像一般为缩略图。

    或者前段人员开发时,需要对同一个图片,在不同尺寸屏幕下,显示不同规格的图片。

    实现方式

    常用方式是通过后台程序实现,例如PHP。剪裁不同的图片,然后存储在磁盘中,可以多次调用。

    其实我们可以通过Nginx,快速实现。通过Nginx中图片处理模块,轻量、快速实现,图片压缩、剪裁等功能。

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

    安装

    默认HttpImageFilterModule模块是不会编译进nginx,需要在configure时候指定--with-http_image_filter_module

    先查询Nginx是否安装此模块

    nginx -V
    
    #格式化之后的命令, 方便查看
     2>&1 nginx -V | tr ' '  '\n'|grep ssl

    编译安装Nginx

    ./configure arguments: --prefix=/usr/local/nginx --with-http_image_filter_module

    如果未安装回报“/configure: error: the HTTP image filter module requires the GD library.”错误
    解决:HttpImageFilterModule模块需要依赖gd-devel的支持

    yum install gd-devel

    或者

    apt-get install libgd2-xpm libgd2-xpm-dev

    Nginx配置

    server_name image.test.com;
    
    location ~* (.*)_(\d+)x(\d+)\.(jpg|png|gif)$ {
    		set $s $1;
    		set $w $2;
    		set $h $3;
    		image_filter resize $w $h;
    		#image_filter crop $w $h;
    		image_filter_buffer 10M;
    		rewrite ^(.*)\.(jpg|png|gif)$ $s.$2 break;
    }

    测试

    先测试能否正常访问
    http://image.test.com/test/2.jpg

    使用Nginx实时剪裁图片

    再测试图片剪切
    http://image.test.com/test/2_200x200.jpg

    使用Nginx实时剪裁图片

    当然,也可以图片旋转等功能,只需要修改相应配置

    参数配置

    http_image_filter_module支持5种指令:

    image_filter:
    测试图片文件合法性(image_filter test);
    3个角度旋转图片(image_filter rotate 90 | 180 | 270);
    以json格式输出图片宽度、高度、类型(image_filter size);
    最小边缩小图片保持图片完整性(resize width height);
    以及最大边缩放图片后截取多余的部分(image_filter crop [width] [height]);

    image_filter_jpeg_quality:
    设置jpeg图片的压缩质量比例(官方最高建议设置到95,但平时75就可以了);

    image_filter_buffer:
    限制图片最大读取大小,默认为1M;

    image_filter_transparency:
    用来禁用gif和palette-based的png图片的透明度,以此来提高图片质量。

    image_filter_sharpen:
    这个指令在nginx-1.1.8和1.0.11版本后增加的,目前还不知道是干啥用。

    上一篇 护卫神·安全审计系统V3.0.0发布!一键免费加固服务器安全!
    下一篇 小米ac2100路由器输入openwrt固件

    相关信息

    【译】Ngnix实现一个缓存和缩略处理的反向代理服务器

    2022年08月10日

    Digtal Ocean 出品的开源 Nginx 在线配置工具

    2023年02月25日

    GOOGLE VOICE 自动回复短信保号脚本

    2023年02月20日

    GOOGLE VOICE(GV)号码介绍及使用方法

    2023年02月20日

    热门推荐信息

    一键测试脚本 Bench.sh VPS信息&测试工具

    2022年03月08日

    bench.sh是VPS一键测试脚本,使用此脚本可以进行系统信息、IO读写、下载速度测试。bench.sh几乎支持所有Linux发 ...

    GOOGLE VOICE(GV)号码介绍及使用方法

    By 彧繎叔叔 2023年02月20日

    Google Voice 是 Google 推出的 VOIP 服务,通过申请可免费获得一个美国虚拟电话号码,该虚拟号码有在美国及加 ...

    小米ac2100路由器输入openwrt固件

    2022年09月27日

    OpenWrt 可以被描述为一个嵌入式的 Linux 发行版。(主流路由器固件有 dd-wrt,tomato,openwrt,pa ...

    一键测试脚本 SuperBench.sh VPS信息&测试工具

    2022年03月08日

    SuperBench.sh是在bench.sh的基础上发展而来的,也可以测试VPS系统基本信息和IO性能,不过将测速节点换成了国内 ...

    GOOGLE VOICE 自动回复短信保号脚本

    2023年02月20日

    自从搞了 Google Voice 虚拟号码,时不时的就要去发短信,搞不好就忘记了,已经让回收了个炸弹号,挺可惜的,保号也就是说可 ...

    小编精选

    Linux 网络重装脚本支持 Vultr 纯 IP ...

    2023年02月08日
    最新内容

    Digtal Ocean 出品的开源 Nginx 在线配置工具

    2023年02月25日

    GOOGLE VOICE 自动回复短信保号脚本

    2023年02月20日

    GOOGLE VOICE(GV)号码介绍及使用方法

    2023年02月20日

    Linux 网络重装脚本支持 Vultr 纯 IPv6,双栈机型

    2023年02月08日

    控制macOS的开机启动

    2023年01月21日
    文章导航
    关于本站
    VPS优选

    精选内容
    更多>

    详细整理Cloudflare开通和设置SSL证书的功能

    2022年03月26日

    日本VPS:稳定好用的CN2 GIA、日本软银、NTT 线路VPS推荐

    2023年01月15日

    CloudFlare遇到Error 526无效的SSL证书解决方法

    2023年01月17日
    今日热门信息
    更多>
    • #域名 详细整理Cloudflare开通和设置SSL证书的功能
    • #Linux Linux一键DD安装各种系统总结
    • #工具 GOOGLE VOICE 自动回复短信保号脚本
    • #域名 CloudFlare遇到Error 526无效的SSL证书解 ...
    • #经验技巧 一图看懂服务器CN2 GIA_CN2 GT_普通线路的区别
    © 2023 VPS优选.
    • 联系我们
    • 返回首页

    按 回车 搜索. 按 Esc 取消.