php URL图片资源传参生成对应尺寸图片

最近项目中需要上传大图,然后不同设备请求不同大小的图片,之前有用过一个通过URL参数来获取不同大小的图片的接口感觉设计方式请不错,于是就百度看看类似是如何实现的,找了几天找个两个功能类似的记录下。

1、图片服务器 imagemagick / zimg
2、php代码 autoCropImage

结果部署imagemagick / zimg环境怎么都安装不成功最后放弃了以后有时间在研究。 这里就简单的使用autoCropImage

  • 首先web服务器需要 开启 mod_rewrite
  • 其次.htaccess 文件添加 url路由 让图片资源跳转autoCropImage.php处理
RewriteEngine on

RewriteRule ^.*(?:gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)(?:_)([0-9]+)x([0-9]+)(?:m([1-5]))?(?:v([A-Za-z0-9_]*))?(?:.)?(?:gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)?$ data/autoCropImage/autoCropImage.php [L,QSA]
RewriteCond %{QUERY_STRING} ^([0-9]+)x([0-9]+)(?:m([1-5]))?(?:v([A-Za-z0-9_]*))?$
RewriteRule ^.*\.(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)$ data/autoCropImage/autoCropImage.php [L,QSA]
  • 创建thumb目录用来放置生成的图片 例如我的项目在/data/thumb/
/项目根目录结构
----/data/
--------/upload/ 上传在这里的原图图片资源位置
--------/thumb/ 生成的对应尺寸图片存放位置
--------/autoCroplmage/图片处理类
------------/autoCropImage.php
------------/_auth.php 安全处理配置
------------/_config.php 配置文件
------------/ImageCrop.php 

使用
默认请求方式:
http://localhost/data/upload/20160724/57945fc63440a.png

获取不同尺寸的请求方式:
http://localhost/data/upload/20160724/57945fc63440a.png_500x150m1v2014.png

===========================

URI 模式
http://localhost/data/upload/20160724/57945fc63440a.png_50x100.png
http://localhost/data/upload/20160724/57945fc63440a.png__50x100m2.png
http://localhost/data/upload/20160724/57945fc63440a.png__50x100v2014.png
http://localhost/data/upload/20160724/57945fc63440a.png__50x100m2v2014.png

QUERY 模式
http://localhost/data/upload/20160724/57945fc63440a.png_?50x100
http://localhost/data/upload/20160724/57945fc63440a.png_?50x100m2
http://localhost/data/upload/20160724/57945fc63440a.png_?50x100v2014
http://localhost/data/upload/20160724/57945fc63440a.png_?50x100m2v2014
使用说明

方式一:50x100 缩放成 50x100 大小
方式二:50x100m2 方式一并且使用mode 2
方式三:50x100v2014 方式一并且指定缓存版本2014
方式四:50x100m2v2014 方式一,使用mode 2并且指定缓存版本2014
缩放模式说明

mode 1 : 强制裁剪,生成图片严格按照需要,不足放大,超过裁剪,图片始终铺满。
mode 2 : 和1类似,但不足的时候 不放大 会产生补白,可以用png消除。
mode 3 : 只缩放,不裁剪,保留全部图片信息,会产生补白。
mode 4 : 只缩放,不裁剪,保留全部图片信息,此时的参数只是限制了生成的图片的最大宽高,不产生补白。
mode 5 : 生成的图比例严格按照需要的比例,宽和高不超过给定的参数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值