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

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

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

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

数据处理流程

处理过程.png

能力简介

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

基础图片处理

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

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

基础图片处理-旋转

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

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

1、旋转30度:

2、auto-orient旋转:

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

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

默认显示:

代码语言:javascript
复制
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo_270.jpg?imageMogr2/auto-orient

auto-orient显示:

基础图片处理-缩放

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

1、宽高同时缩放30%

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

2、缩放并且填充颜色

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

基础图片处理-格式转换

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

1、png格式

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

2、webp格式

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

3、heif格式

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

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

基础图片处理-格式对比

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

代码语言:txt
复制
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
复制
imageMogr2/auto-orient/ignore-error/1|imageMogr2/format/heif

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

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

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

代码语言:txt
复制
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
复制
https://cloud.tencent.com/act/pro/cosExhibition

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

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

1、文字水印

2、加密方式:

代码语言:txt
复制
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
复制
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