最近项目中需要上传大图,然后不同设备请求不同大小的图片,之前有用过一个通过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,php URL图片资源传参生成对应尺寸图片相关推荐

  1. Nginx+PHP实时生成不同尺寸图片

    原来图片服务器采用Windows .net架构,鉴于需求需要生成各种尺寸图片. 流程说明: 用户从Nginx请求对应的图片,判断是否存在_200x300的对应参数,如果没有就直接请求到对应目录的原图, ...

  2. url上传参 用requestmapping接受_14 个 Spring MVC 顶级技巧,随时用随时爽,一直用一直爽...

    (给ImportNew加星标,提高Java技能) 转自:失控的狗蛋~ 链接:blog.csdn.net/Summer_Lyf/article/details/102911215 通常,在Spring ...

  3. vue取url路径传参_vue不通过路由直接获取url中参数的方法示例

    前言 众所周知vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接在url后面拼接?mid=100的方 ...

  4. 基于.NetCore开发博客项目 StarBlog - (15) 生成随机尺寸图片

  5. URL传参小用法获取url中的参数

    写页面的时候发现的小用法,记录下来,关于url静态传参的问题. 首先列举下获取URL中参数的几种方法 方法一:正则法 这个正则是寻找&+url参数名字=值+&*/     这里参考网址 ...

  6. 前端Url 传参编码

    背景 我遇到的问题是这样的 例如: 我的用户中心的项目是这样的URL:https://my.csdn.net/我的一个活动页的项目的URL是:https://my.csdn.net/?id=1166这 ...

  7. 微信小程序使用onfire.js(事件订阅和分发JavaScript 库)实现跨页面传参,对onfire的全面了解

    开发微信小程序时,页面间数据传送多采用URL方式传参.添加全局变量,对于在本地缓存不大实用(感觉操作缓存,应该性能会有一定的损耗吧).而从新打开的页面回到之前的界面,貌似只有放在本地缓存.添加全局变量 ...

  8. Spring Boot 传参方式

    2019独角兽企业重金招聘Python工程师标准>>> 最近在搞Spring Boot的项目,把传参方式总结一下.网上也参考一些文章,总结的很不错,这里借鉴一下. 注解 @Reque ...

  9. 在 ASP.NET Core 中使用多种方式给 Action 传参

    ASP.NET Core 是一个跨平台,开源的,轻量级,高性能 并且 高度模块化的web框架.在 ASP.NET Core MVC 中有很多种方式可以给 Action 方法传递参数,比如说:url方式 ...

最新文章

  1. LSTM内部实现原理详解
  2. 微信分享JSSDK-invalid signature签名错误的解决方案
  3. CSS3 background-size 属性值:cover
  4. java barcode api_使用JavaBean API 嵌入Barcode4J到Java应用程序
  5. 史上最全PHP正则表达式实例汇总
  6. 多线程与高并发(三):JUC包下新的同步机制:CAS,AtomicInteger,AtomicLong,ReentrantLock,CountDownLatch,ReadWriteLock等
  7. Spring mvc 中 DispatcherServlet 的学习和理解
  8. 概率论(基本概念术语)的理解
  9. PHP开发的AZ自动发卡网站系统源码
  10. 数据挖掘—网格搜索2
  11. astar算法c语言实,Astar寻路算法C++实现
  12. .net Reactor 使用说明详解
  13. 手机12306买卧铺下铺技巧_12306网上购下铺技巧(亲历版)
  14. 5, Swift tableView点击收起展开的效果
  15. Google可能将退出中国市场
  16. python语音转文字源码_python 语音转化文字
  17. Archlinux kde 美化
  18. 多人群聊聊天室java_#java 聊天室(一)—— 实现一个简单Telnet多人群聊聊天室...
  19. mac添加Chrome插件的方法
  20. A Full Hardware Guide to Deep Learning深度学习电脑配置

热门文章

  1. 产品经理思维模型:创新价值曲线
  2. 自营型电商和平台型电商的行业秘密是什么?
  3. 普通java程序怎样用cron_java – Spring cron vs普通cron?
  4. dw中html中无法使用js,在Dreamweaver中调用JavaScript行为
  5. ug11 linux,UG11.0升级包MP02Win#Linux系统下载就上UG网
  6. 如何科学高效的学习Web前端开发?
  7. proxifier访问https错误_教你实现IE访问https网站不出错方法
  8. matlab三维选取二维,基于Matlab绘制二维和三维图形以及其他图形控制函数的使用方法...
  9. python中view的用法_APIview使用
  10. Aspose.Words简单生成word文档