首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >对象存储COS数据处理-灵活使用图片参数

对象存储COS数据处理-灵活使用图片参数

原创
作者头像
wanjiewu
修改于 2021-02-14 07:32:51
修改于 2021-02-14 07:32:51
1.8K00
代码可运行
举报
运行总次数:0
代码可运行

对象存储COS数据处理-灵活使用图片参数

随着5G等技术的普及,信息的传播越发的快速,更好的满足了民众对于信息的诉求。越来越多的产品提供了丰富的信息资源,包括图片、视频、音频等等。如何存储和处理这些数据是一个产品需要考虑的重要方面,如果由产品团队自己来进行图片、音视频和文档数据的存储和处理,需要投入硬件采购、软件系统部署和维护成本,同时也需要专业的技术团队。

腾讯云对象存储COS数据处理能力更好地为产品团队提供专业稳定的云端处理能力,基于数据万象CI的云端数据处理能力具有规模大、专业性强等特点,同时也经过内外部产品大规模的检验。

数据处理流程

处理过程.png
处理过程.png

能力简介

COS数据处理之图片处理是腾讯云为客户提供的一体化的图片解决方案,覆盖上传、下载和识别功能,其中上传和下载时支持丰富的图像处理功能,如裁剪、压缩、水印和转格式等,满足各种业务场景需求,给用户提供了安全、稳定、高效的云端数据处理能力,满足用户的多种需求。

基础图片处理

基础图片处理能力使用为简单,只需要拼接URL参数就可以,具体见API文档

代码语言:txt
AI代码解释
复制
https://cloud.tencent.com/document/product/460/6924

基础图片处理-旋转

通过imageMogr2参数提供旋转功能,可以支持旋转固定角度和自适应旋转。自适应旋转是指根据原图EXIF信息将图片自动回正。

代码语言:txt
AI代码解释
复制
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo.jpg?imageMogr2/rotate/30

1、旋转30度:

2、auto-orient旋转:

auto-orient旋转(读取EXIF的信息并且自动旋转输出图片):

代码语言:txt
AI代码解释
复制
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo\_270.jpg

默认显示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo_270.jpg?imageMogr2/auto-orient

auto-orient显示:

基础图片处理-缩放

通过imageMogr2参数提供了缩放功能,可以支持多种限制方式的缩放,同时针对需要填充时可以支持按照颜色进行填充。

1、宽高同时缩放30%

代码语言:txt
AI代码解释
复制
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo.jpg?imageMogr2/thumbnail/!30p

2、缩放并且填充颜色

代码语言:txt
AI代码解释
复制
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo.jpg?imageMogr2/thumbnail/300x200/pad/1/color/IzNEM0QzRA
img
img

基础图片处理-格式转换

通过imageMogr2参数可以实现丰富的格式转换功能,主流的jpg,bmp,gif,png,webp和heif都可以支持。方便用户使用。

1、png格式

代码语言:txt
AI代码解释
复制
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo.jpg?imageMogr2/format/png

2、webp格式

代码语言:txt
AI代码解释
复制
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo.jpg?imageMogr2/format/webp

3、heif格式

代码语言:txt
AI代码解释
复制
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo.jpg?imageMogr2/format/heif

heif格式很多暂时不支持,先不预览图片。

基础图片处理-格式对比

COS对象存储也为jpg图片类型提供guetzli压缩功能,该功能也可以达到60+%的图片压缩能力。欢迎各位使用COS的数据处理能力体验馆,寻找你需要的能力

代码语言:txt
AI代码解释
复制
https://cloud.tencent.com/act/pro/cosExhibition

jpg启用guetzli压缩

jpg转为webp格式,可以达到30+%的质量减少。

jpg转为heif格式,可以达到50+%的质量减少。

基础图片处理-灵活使用图片格式转换参数

针对如此多的图片格式,如何更好的使用这些图片格式让客户业务获得更好的业务体验。如下推荐参数中,大家发现多了ignore-error和auto-orient两个参数key,这两个参数key可以更好的规避一些超大图或者图信息缺少导致的转换失败,可以优先返回原图。注意,COS服务是无法感知到客户的使用环境,所以想要准确的使用各种格式,客户需要在客户主动判断使用环境选择最优的格式,使得客户业务更快的图片加载体验。

1、对于一些新的移动系统使用IOS 11以上及 Android P 系统预览,我们可以优先让客户业务使用heif格式。

代码语言:txt
AI代码解释
复制
imageMogr2/auto-orient/ignore-error/1|imageMogr2/format/heif

2、对于常用的系统或者环境,可以使用让客户业务使用webp格式。

代码语言:txt
AI代码解释
复制
imageMogr2/auto-orient/ignore-error/1|imageMogr2/format/webp

3、对于一些低系统或者需要兼容性高,可以使用让客户使用guetzli压缩

代码语言:txt
AI代码解释
复制
imageMogr2/auto-orient/ignore-error/1|imageMogr2/format/guetzli

4、对于使用CDN的大量客户,我们也可以通过和CDN的集成的方式为客户提供格式的支持。

4.1、Webp自适应能力

HTTP 请求头中 accept 头部包含 image/webp。

图片后缀为 jpg、jpeg、bmp、gif、png。

4.2、Guetzli自适应能力

HTTP 请求头中 accept 头部包含 image/guetzli。

图片后缀为 jpg、jpeg。

基础图片处理-水印能力

通过watermark参数提供了多种水印能力,包括图片水印,文字水印,方便用户使用。

代码语言:txt
AI代码解释
复制
https://cloud.tencent.com/act/pro/cosExhibition

基础图片处理-水印能力扩展

2020年作为在线教育和在线办公元年,催生了很多关于版权保护的需要,各大公司和学校内部数据都需要保护能力,这时候图片的水印能力就可以做到一些防护。但是客户可能会疑问通过图片链接就可以获得到图片原图,是否能真正的保护,针对这种情况我们提供了一种参数加密的能力,这样用户就完全不知道图片的原始链接。如您想使用该功能,可提交工单或点击右侧联系我们,以开启参数加密。您只需提供需要加密的bucket名称,并根 据下文中的加密算法对您的请求链接进行加密开发。

1、文字水印

2、加密方式:

代码语言:txt
AI代码解释
复制
1、加密算法:AES

2、加密模式:cbc

3、加密key:自定(双方一致,需使用16位字符串)

4、加密vi:自定(双方一致,需使用16位字符串)

5、加密流程

6、按照“ci-process=?<compress\_param>”格式拼接请求串,对请求串使用AES的CBC模式加密,然后对加密后的二进 制内容再进行urlsafe的base64编码,最终使用“域名/<urlsafe\_base64encode(encrypt)>”进行访问

注:

fileid:资源名称 compress\_param:处理参数,如?imageMogr2/format/webp

3、示例:

代码语言:txt
AI代码解释
复制
1、原始URL:

https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo.jpg?watermark/2/text/Q09T5pWw5o2u5aSE55CG/fill/IzNEM0QzRA/fontsize/20/dissolve/50/dx/20/dy/20/batch/1/degree/45

2、加密key: TIwODEwMDEucGljc 加密vi: NTIwODEwMDEu2RzL

3、待加密串:

ci-process=demo.jpg?watermark/2/text/Q09T5pWw5o2u5aSE55CG/fill/IzNEM0QzRA/fontsize/20/dissolve/50/dx/20/dy/20/batch/1/degree/45

4、加密并urlsafe\_base64encode后:

Sz2-8N\_7VlMBCynB\_Rv48QZW3blBRI-cCNJcp2H1rm4Oji-soJhk4xYirO8w0dJwRWyJh\_vswJQ1UoyoheqvnoklGmdu\_7UxTpX0jlihybRDY9GKDLWroNr7Ch-zc0BxE-1kxIbwoReBu558D\_BRmn-K\_b-Q3HH69fyL6HVwIks=

5、https://demo-1253960454.cos.ap-chongqing.myqcloud.com/Sz2-8N\_7VlMBCynB\_Rv48QZW3blBRI-cCNJcp2H1rm4Oji-soJhk4xYirO8w0dJwRWyJh\_vswJQ1UoyoheqvnoklGmdu\_7UxTpX0jlihybRDY9GKDLWroNr7Ch-zc0BxE-1kxIbwoReBu558D\_BRmn-K\_b-Q3HH69fyL6HVwIks=?imageMogr2/auto-orient

注意:

如果bucket为私有读写,需要对加密后的串(当做虚拟文件)做签名,否则无法通过COS的签名验证。

?imageMogr2/auto-orient参数用于标识该请求是图片类的请求。
img
img

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java描述设计模式(24):备忘录模式
常见的视频播放软件都具备这样一个功能:假设在播放视频西游记,如果这时候切换播放视频红楼梦,当再次切回播放西游记时,视频会从上次切走的时间点继续播放。下面基于备忘录设计模式来描述该场景流程。
知了一笑
2019/12/03
3710
23种设计模式(15):备忘录模式
定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就能够将该对象恢复到原先保存的状态
全栈程序员站长
2021/12/23
2310
23种设计模式之备忘录模式
**备忘录模式(Memento Pattern)**保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。
Java技术债务
2022/09/26
4380
23种设计模式之备忘录模式
小谈设计模式(19)—备忘录模式
主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。
学编程的小程
2023/10/11
2190
小谈设计模式(19)—备忘录模式
设计模式之备忘录模式
Without violating encapsulation, capture and externalize an object’s internal state allowing the object to be restored to this state later.
beginor
2020/08/10
3390
设计模式之备忘录模式
23种设计模式之备忘录模式
游戏角色有攻击力和防御力,在大战boss之前保存自身的状态(攻击力血量等等),当大战boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态
暴躁的程序猿
2022/03/23
2430
Golang语言情怀-第29期 Go 语言设计模式 备忘录
https://blog.csdn.net/weixin_40165163/article/details/91052749
李海彬
2021/02/05
3330
Golang语言情怀-第29期 Go 语言设计模式 备忘录
备忘录模式
备忘录模式(Memento Pattern)是一种行为设计模式,用于在不暴露对象内部状态的情况下,捕获并存储对象的当前状态,以便日后可以将对象恢复到存储的状态。备忘录模式可以有效地实现撤销/恢复操作。
码事漫谈
2024/12/20
1040
备忘录模式
【设计模式 15】备忘录模式
备忘录模式又叫快照模式,用于在不破坏原对象封装的条件下保存对象某一时刻的 “状态” ,作为一个 “备忘录(或快照)” ,并且可以在原对象改变后通过备忘录恢复 原来的状态,最典型的例子是游戏存档。
JuneBao
2022/10/26
3560
【设计模式 15】备忘录模式
设计模式-备忘录模式
美国大片好多超级英雄的角色,一个人从头干到尾,还毫发无损,真的是大家很崇拜的对象,而超级英雄平常也是普通人状态,等到世界末日或者说变身的时候才变成超级牛逼的一种状态,干完架又恢复成普通人,这里其实跟备忘录模式有点像,普通状态和超级英雄状态。
逍遥壮士
2020/09/18
4210
设计模式-备忘录模式
java设计模式之备忘录模式,世上真的有“后悔药”,带你穿越回过去
备忘录模式(Memento Pattern)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式,备忘录模式属于行为型模式。
用户4361942
2019/05/24
4890
在王者荣耀角度下分析面向对象程序设计B中23种设计模式之备忘录模式
在王者荣耀的游戏中,贤者的庇护这件装备设计的初衷是提高容错率,常常出现在游戏后期,玩家通过装备贤者的庇护在危急时刻可以实现复活效果,进而保命。
荣仔_最靓的仔
2021/01/30
3090
【地铁上的设计模式】--行为型模式:备忘录模式
备忘录模式(Memento Pattern)是一种行为型设计模式,其目的是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存该状态,以便之后恢复对象到该状态。该模式可以使得对象的状态历史可以被保存和管理。 在备忘录模式中,有三个主要角色:
喵叔
2023/05/11
2210
备忘录模式
在不违反封装的情况下保存、获取对象的内部状态,然后在需要的时候可以恢复之前的状态。应用在存档、回退操作(ctrl + z、浏览器回退)
晚上没宵夜
2022/01/07
3210
修炼内功之JavaScript设计模式(三)
工作时间久了,自然对软件系统产生自己的思考,还会面临职业生涯的一个挑战。要不要成为一个技术负责人?
童欧巴
2020/03/30
3720
修炼内功之JavaScript设计模式(三)
图解Java设计模式之备忘录模式
游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态。
海仔
2020/04/08
7930
图解Java设计模式之备忘录模式
设计模式学习之备忘录模式
备忘录模式(Memento Pattern),是行为型模式设计模式之一,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问,目的是为了保护被保存的这些对象状态的完整性以及内部实现不向外暴露,本篇博客,我们就来一起学习备忘录模式。
老马的编程之旅
2022/06/22
3650
设计模式学习之备忘录模式
Java设计模式之备忘录模式
说明:如果希望保存多个originator对象的不同时间的状态,也可以,只需要要 HashMap <String, 集合>
shaoshaossm
2022/12/27
3650
Java设计模式之备忘录模式
设计模式学习笔记(十八)备忘录模式及其实现
备忘录模式(Memento Design Pattern),也叫快照(Snapshot)模式。指在不违背封装原则前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后恢复对象为先前的状态。
用户8262580
2022/04/09
6780
设计模式学习笔记(十八)备忘录模式及其实现
浅谈设计模式 - 备忘录模式
备忘录这个模式用的比较少,基本学完就可以忘记的一个模式,但是应用的情况还是不少,同时这个模式几乎“人手必备”,那就是典型的ctrl+z这个功能就可以看作备忘录的典型案例,我们的游戏存档也可以看作是一种备忘录的变形。
阿东
2021/11/02
5430
推荐阅读
相关推荐
Java描述设计模式(24):备忘录模式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档