【对象存储COS】利用数据万象CI对影像内容空间进行优化

本文最后更新于:2023年1月17日 下午

前言

业务量的不断扩大,导致对象存储的存储空间以及流量迅速增大,尤其是图片业务,web中最关键的部分,由于html的同步加载特性,通常是一张加载完才能加载下一张,在本地降低分辨率会丢失图片大部分细节,那么除了让本地图片一张张压缩之外,还有什么办法大幅度减小图片体积呢?

腾讯云对象存储与数据万象提供了极致性价比的压缩:对象存储 图片压缩 - API 文档 - 文档中心 - 腾讯云 (tencent.com)

计费方面

输出格式 价格
TPG 0.1元/千次
HEIF 0.1元/千次
AVIF 0.3元/千次

DEMO

https://www.arsrna.cn/test/img.html

可以看到,HEIF对比原图,下降了80%左右的大小,而画质基本不变,并且在速度上,HEIF加载也是最快的,因为只有7.8kb

HEIF   700k

原图PNG  30M

可以看到,压缩前后图片画质基本没有区别,色彩空间有所压缩,但是图片大幅下降了大小

兼容性

因为AVIF是一种较新的类似AV1格式,只有在较新的浏览器才可以浏览,所以在这里建议使用HEIF,各个图片的兼容性如下(亲测):

格式 Android 12 iOS15.4 Windows11 压缩
PNG
JPG
AVIF × × 需要扩展 ↓50+%
HEIF 需要扩展 ↓30+%
TPG 仅qq浏览器 仅qq浏览器 仅qq浏览器 ↓50+%
WebP ↓20+%

相关基础配置

对象存储设置开通

首先前往数据万象CI产品控制台开通 概览 - 数据万象 - 控制台 (tencent.com)

在对象存储开通高级压缩

存量数据处理

控制台处理

在对象存储数据工作流-公共配置中,设创建模板

设置名称,参数

不缩略,输出格式AVIF或者HEIF

保存以后在 任务 处创建图片压缩任务

设置所有参数,输出文件名按需设置

完成之后确定即可开始进程

此方式优点:设置简单

缺点:批量数据很难实现处理,比较繁琐

建议开启上传的时候开启数据流处理

工作流处理

设置工作流

在对象存储工作流控制台 :数据工作流 - 对象存储 - 控制台 (tencent.com)

创建工作流,名称自定义,选择对应处理的存储桶,建议开启格式匹配-图片文件

配置工作流。输入后执行图片处理

选择刚刚设置的存储桶

然后保存

执行工作流

在工作流控制台 数据工作流 - 对象存储 - 控制台 (tencent.com)

在刚刚创建的工作流操作里,点击执行工作流

扫描任务名称自定义,扫描模式多个文件执行工作流

剩下的根据需要设置

完成之后执行工作流即可

该方式优点:一次设置,次次方便,批量的时候非常方便

缺点:第一次设置较复杂,容易导致参数过多忘记

上传数据处理

数据工作流(推荐)

在数据工作流里面打开上传触发执行即可

每次上传到任务流设置的指定路径就会执行

API

由于需要存储到存储桶里,API只能做到实时处理无法直接保存到文件,所以需要通过持续化将图片,在上传的时候要加入参数,让图片自动保存数据万象 图片持久化处理 - API 文档 - 文档中心 - 腾讯云 (tencent.com)

其中

1
rules

这个参数需要自己定义,可以在工作流详情图像处理看得到

1
imageMogr2/format/avif/interlace/1

总结

直观大小对比

这里以三张图片为例

原图/MB HEIF/MB AVIF/MB
7.91 3.2 1.8
18 13 3.2
30 14 6.9

很明显地看到,相比原图JPG或PNG格式,HEIF与AVIF大幅度压缩了不少,如果一个文件夹有100000张10M的图片,AVIF就剩下了300+G,换算到腾讯云的标准存储容量包价格,每个月存储省下了24块,流量省下了102块(中国大陆)

画质对比

这么大的压缩率,如果是传统的压缩方式,估计已经破败不堪了,但是这两种压缩方式能够尽量保留原色彩和画质,尽量无损

原图(14M)

HEIF(3M)

测试图片:

https://res.arsrna.cn/SwordArtOnline/SwordArtOnline_632059_ArSrNaRS4x.avif

优缺点对比

高级压缩 传统压缩
速度 云端处理,速度快 本地处理,根据处理设备决定
画质 近乎无损 有损压缩
压缩率 极高 一般
成本 根据处理设备决定
兼容性 中等 极强

由于AVIF,HEIF还是比较小众的图片格式,鉴于原生iOS就是HEIF的优势,在iOS平台上强烈建议使用HEIF方式,Windows平台建议Webp和AVIF。

希望不久的将来,图片空间与图片压缩算法的发展,我们的数据将会在质的提升时,控制量的剧变

相关问题

图像过大处理失败

体积限制:处理图片原图大小不超过32MB、宽高不超过30000像素且总像素不超过2.5亿像素,处理结果图宽高设置不超过9999像素;针对动图,原图宽 x 高 x 帧数不超过2.5亿像素。

如果超出限制则会导致失败,建议使用Photoshop或者其他软件将图片缩小到范围之内再进行处理

无法开始处理

请确认是否开通图像高级压缩和数据万象,同时确认是否后付费留有足够的余额

处理时间过长

一般一张图片10分钟左右肯定能完成,如果太长,请关闭任务重新开始,如果还是不行,请核实图片内容是否过于复杂,建议优化图片内容

如果还是不行,建议提交工单确认账号或系统问题


到此,教程就结束了,更多可能,需要我们一起发现

Powered by Ar-Sr-Na www.arsrna.cn