动图截帧

最近更新时间:2024-11-07 18:55:22

我的收藏

功能概述

腾讯云数据万象通过 imageMogr2 接口提供动图截帧功能。
该功能支持以下处理方式:
下载时处理
上传时处理
云上数据处理

授权说明

下载时处理:授权策略中 action 设置为 cos:GetObject
上传时处理:授权策略中 action 设置为 cos:PutObject
云上数据处理:授权策略中 action 设置为 cos:GetObjectcos:PutObject(注意 GetObject 对应的 resource 为源文件,PutObject 对应的 resource 为转存的文件)。
查看所有 action

服务开通

使用该功能将默认为您开通数据万象,并绑定存储桶,无需角色授权,即可直接使用。

使用限制

使用该接口时,请先确认相关限制条件。详情请参见 使用限制
支持格式:支持处理 GIF、WebP 格式。
体积限制:GIF 原图宽 x 高 x 帧数不超过2.5亿像素;WebP 原图宽高不超过16383像素。
动图帧数限制:帧数限300帧。

接口示例

1. 下载时处理

GET /<ObjectKey>?imageMogr2/cgif/<FrameNumber>
/egif/<FrameInterval> 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/cgif/<FrameNumber>
/egif/<FrameInterval>"
}]
}

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/cgif/<FrameNumber>
/egif/<FrameInterval>"
}]
}
说明
Authorization: Auth String(详情请参见 请求签名 文档)。
通过子账号使用时,需要授予相关的权限,详情请参见 授权粒度详情 文档。
Pic-Operations 为 json 格式的字符串,具体参数信息可参考 图片持久化处理
fileidObjectKey 相同时,处理后的图片将覆盖原图存储;不相同时将分别存储原图和处理后图片。
fileid 的值需要经过 URL 安全的 Base64 编码

处理参数说明

参数
含义
ObjectKey
对象文件名,例如 folder/sample.gif。
/frame/
动图截单帧(仅支持下载时处理):可指定截取动图的第N帧,N取值为正整数(1,2,3……),如果N大于动图的最大帧数,则取最后一帧。例如截取某动图的第1帧,则参数为 /frame/1。
/cgif/
动图格式优化(截取型):针对原图为 gif、webp 格式,对动图进行的优化,截帧降颜色。分为以下两种情况:
FrameNumber=1,则按照默认帧数30处理,如果图片帧数大于该帧数则截取。
FrameNumber 取值(1,100],则将图片压缩到指定帧数 (FrameNumber)。
/egif/
动图格式优化(抽帧型):只针对原图为 gif、webp 格式,对动图进行的优化,进行降颜色处理,并每隔一定帧数(FrameInterval)抽取目标帧进行输出。
FrameInterval 取值[1,10]。
/ignore-error/1
当处理参数中携带此参数时,针对文件过大、参数超限等导致处理失败的场景,会直接返回原图而不报错。
注意
cgif 与 egif 参数同时传递时,优先处理 cgif。

实际案例

说明
本篇文档中的实际案例仅包含下载时处理,该类处理不会保存处理后的图片至存储桶。如有保存需求,您可查阅 图片持久化处理 文档并配置上传时处理云上数据处理
对某GIF动图截取前10帧:
http://examples-125xxxxxx.cos.ap-shanghai.myqcloud.com/sample.gif?imageMogr2/cgif/10

注意事项

为了避免未授权人员通过访问不携带处理参数的链接实现访问和下载原图的情况,您可同时将处理参数签入到请求签名中,处理参数整体是参数的 key,value 为空,如下是简单的示例(仅做样式参考,可能已经过期无法直接访问),详细计算方法请参见 请求签名
http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1593342360;1593342720&q-key-time=1593342360;1593342720&q-header-list=&q-url-param-list=watermark%252f1%252fimage%252fahr0cdovl2v4yw1wbgvzlteyntewmdawmdqucgljc2gubxlxy2xvdwquy29tl3nodwl5aw4uanbn%252fgravity%252fsoutheast&q-signature=****************************************&watermark/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn/gravity/southeast