您的位置:首页 > 编程语言 > PHP开发

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

2016-07-24 19:46 405 查看
最近项目中需要上传大图,然后不同设备请求不同大小的图片,之前有用过一个通过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 : 生成的图比例严格按照需要的比例,宽和高不超过给定的参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 图片