nginx实现图片的缩放和裁剪

本文介绍了如何利用nginx的http_image_filter_module模块实现实时图片裁剪和缩放功能。在壁纸项目中,通过动态裁剪原图生成不同分辨率的图片,减轻服务器压力。讲解了resize和crop两个关键命令的区别,resize保持纵横比缩放,crop则在缩放基础上裁剪。在nginx配置中,通过location和正则表达式实现裁剪和缩放的请求处理。
摘要由CSDN通过智能技术生成

最近在做壁纸的项目,会要求根据原图生成不同的分辨率来适配手机。目前设计的方案是只保存一张原图,不同分辨率的图片在请求时根据原图动态裁剪,nginx层实现。


例:

原图url:http://s.qdcdn.com/cl/12526976.jpg

客户端请求的url:http://s.qdcdn.com/cl/12526976,240x400.jpg

则在请求时,服务器nginx层根据原图,动态裁剪出240x400分辨率的图片返回给客户端。


nginx层使用http_image_filter_module模块:

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

我们的业务访问量也很大,但是用到了cdn,即访问顺序是cdn->nginx->图片服务器,cdn会回源访问nginx,nginx动态生成指定分辨率的图片后,下次用户再访问此分辨率图片时,cdn上已经有了缓存,会大大减少并发动态生成缩略图的访问量。


http_image_filter_module模块的安装请自行网上查阅,本文不再讲述。重点讲下http_image_filter_module生成缩略图的两个命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值