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处理
创建thumb目录用来放置生成的图片 例如我的项目在/data/thumb/
使用
默认请求方式:
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 : 生成的图比例严格按照需要的比例,宽和高不超过给定的参数。
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 : 生成的图比例严格按照需要的比例,宽和高不超过给定的参数。
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- rem : web app适配的秘密武器
- jquery高级应用之Deferred对象
- 关于浮动与清除浮动,你应该知道的
- 数组reduce方法的高级技巧
- php7 读取php.ini[4]
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- upload上传单张图片
- 图片引发的溢出危机(图)
- C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法