x-oss-process=image/resize,请求图片附加参数不一样,显示大小和分辨率跟着改变,详解

时间:2024-11-06 07:42:16

图片请求路径:

/zt/image/HomeImage/jpeg/2017/12/20/?x-oss-process=image/resize,limit_0,m_fill,w_200,h_200/quality,q_100

图片原路径:

/zt/image/HomeImage/jpeg/2017/12/20/

通过这2个分析可以看出,图片请求路径都是一样的,只是后面附加了一些参数:

一、参数:?x-oss-process=image/resize,limit_0,m_fill,w_200,h_200/quality,q_100

二、大小

三、分辨率

 

感觉这个东西好强大!

 

……………分割线…………………

 

阿里云OSS 图片处理api(custom)

l/extendworld/article/details/81989955

 

首先放个阿里云OSS图片处理接口文档 阿里云官方地址 
OSS 图片处理接口文档

我们有时会抱怨用户上传的图文中图片文件大了(假如说3M的图片)。导致生成的网页打开速度慢,怎么办呢?

问题分析:网页打开慢是因为网页资源下载的那张图片下载慢。只要能够改变用户上传的大小就能解决这个问题。

方案一: 限制用户上传文件的大小? 
1、使用的用户并不懂程序,限制了大小用户是否会觉得体验感不好?

方案二:图片上传后我们是否能对图片进行处理使之改变该图片的大小(压缩)? 
1、我们写的程序处理图片的接口就一定很好吗? 
2、我们有那么多精力去做这个吗? 
3、我们能否在网上查询相应的资源下载对应的图片处理接口包来使用?安装使用的流程复杂吗? 
4、能否在现有的资源下找个免费的第三方平台免费帮助我们?

然后我根据自己的情况我选择了上述的方案二 - 4 这个方法 
采用OSS自带的图片处理机制来帮助我们。 
我只说一下我的使用心得。 
我的需求只是压缩用户上传上来的图片文件大小 
假设我的OSS域名是 
 
在该demo bucket下我上传了一张图片 文件大小是3M 
假设http能访问到的地址 /

现在我想更改这个图片文件的大小。怎么办? 
1、更改图片清晰度 
2、缩小图片尺寸 
我能想起的就是这两个方法 
但是根据我的需求不能更改缩小图片的尺寸,那么只能是更改图片的清晰度了。 
/?x-oss-process=image/quality,q_60 
原图清晰度的60% 
/?x-oss-process=image/quality,q_80 
原图清晰度的80%

看到了吧? 
queryString : x-oss-process=image/quality,q_{int} 这个就是更改图片清晰度的结尾参数 {int}取值0~100

当然我们还可以对图片进行多次处理

裁剪 
/?x-oss-process=image/circle,r_100

先压缩再裁剪 
/?x-oss-process=image/quality,q_80/circle,r_100

是不是很方便,不需要我们自己去写代码,只要我们自己在参数后面加入对应的参数就行了。

当然如果你有自己的阿里云域名(通过域名映射指向的阿里云域名的,如 指向阿里云的) 怎么去实现上述的功能呢? 
一样的,什么都不需要变化。直接点: 
/?x-oss-process=image/circle,r_100 
/?x-oss-process=image/quality,q_80/circle,r_100

如果 做了CDN 加速 也一样用。虽然这个没测试过 但是网上其它老师都是这么说的。

如果你的域名是https 协议访问的,你也可以试一下我上述的方法,我也没测试过https协议的访问情况,如果测试了的小伙伴方便在下方留个言说下测试结果么?方便后面的小伙伴们查看测试结果,节约时间。