AVIF 压缩

最近更新时间:2024-07-24 15:04:02

我的收藏

功能描述

图片压缩指在图片质量保持不变的情况,尽可能的减小图片大小,以达到节省图片存储空间、减少图片访问流量、提升图片访问速度的效果。
数据万象(Cloud Infinite,CI) 产品推出了 AVIF 压缩功能,可将图片转换为 avif 格式,avif 是基于 AV1 的一种全新图片格式,在2020年2月由 Netflix 首次公布于众,目前已支持 Chrome、Firefox 等浏览器。
说明:
使用前请确认图片加载环境已支持 AVIF 解码,腾讯云数据万象提供集成 AVIF 解码器的 iOSAndroid 终端 SDK,可帮助您快速接入和使用 AVIF。

授权说明

通过子账号使用时,需要授予对应权限,COS权限具体请参见 COS action,CI 权限具体请参见 数据万象 action
下载时处理:授权策略中 action 设置为 cos:GetObjectci:SetImageAdvancedCompression
上传时处理:授权策略中 action 设置为 cos:PutObjectci:SetImageAdvancedCompression
云上数据处理:授权策略中 action 设置为 cos:GetObjectcos:PutObjectci:SetImageAdvancedCompression(注意 GetObject 对应的 resource 为源文件,PutObject 对应的 resource 为转存的文件)。

服务开通

使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶
使用 AVIF 压缩,需要先开通存储桶的图片高级压缩功能,您需要在相应的存储桶配置页中通过开关按钮开启功能,详情请参见 图片高级压缩

使用限制

使用该接口时,请先确认相关限制条件。详情请参见 使用限制
支持格式:支持将 jpg、png、bmp、gif、webp、tpg、heif 等格式图片转换为 avif 格式。
体积限制:处理图片原图大小不超过32MB、宽高不超过30000像素且总像素不超过2.5亿像素,处理结果图宽高设置不超过9999像素;针对动图,原图宽 x 高 x 帧数不超过2.5亿像素。
动图帧数限制:gif 帧数限300帧。

兼容说明

各端对 AVIF 格式兼容情况:
浏览器端:各浏览器兼容 AVIF 情况请参见 兼容统计
小程序:iOS 系统>=16,Android 微信>=8.0.0 且 Android 系统>=12
终端 App:iOS 系统>=16,Android>=12
兼容处理建议:
浏览器/小程序:服务端判断请求头里 Accept 字段是否带有 image/avif,自动支持的图片格式,可以使用 CDN 服务的图片优化
终端 App:推荐使用图片处理 SDK 解码,请参见 AndroidiOS

费用说明

AVIF 压缩为付费服务,计费项为图片高级压缩费用,具体费用请参见 图片处理费用,产生的费用将由数据万象收取。
如果采用下载时处理的方式,且通过外网进行下载,调用会产生 流量费用

接口示例

1. 下载时处理

GET /<ObjectKey>?imageMogr2/format/avif HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: <GMT Date>
Authorization: <Auth String>

2. 上传时处理

PUT /<ObjectKey> HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization: Auth String
Pic-Operations:
{
"is_pic_info": 1,
"rules": [{
"fileid": "exampleobject",
"rule": "imageMogr2/format/avif"
}]
}
说明:
Pic-Operations 为 json 格式的字符串,具体参数信息可参考 图片持久化处理

3. 云上数据处理

POST /<ObjectKey>?image_process HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Content-length: Size
Authorization: Auth String
Pic-Operations:
{
"is_pic_info": 1,
"rules": [{
"fileid": "exampleobject",
"rule": "imageMogr2/format/avif"
}]
}
说明:
Authorization: Auth String,详情请参见 请求签名 文档。

处理参数说明

参数
含义
ObjectKey
对象文件名,例如 folder/sample.jpg。
/format/<Format>
压缩格式,此处为 avif。

实际案例

说明:
本篇文档中的实际案例仅包含下载时处理,该类处理不会保存处理后的图片至存储桶。如有保存需求,请使用上传时处理云上数据处理方式。
假设原图格式为 png,图片大小为1335.2KB,如下图所示:
img


将原图转换为 avif 格式,请求 URL 如下:
http://example-1258125638.cos.ap-shanghai.myqcloud.com/sample.png?imageMogr2/format/avif
压缩率对比
格式
图片大小
png(原图)
1335.2KB
avif
62.8KB(压缩率95.3%)