功能概述
对象存储通过数据万象 watermark 接口提供实时文字水印处理功能。
注意
该功能支持以下的处理方式:
下载时处理
上传时处理
云上数据处理
授权说明
下载时处理:授权策略中 action 设置为
cos:GetObject
。上传时处理:授权策略中 action 设置为
cos:PutObject
。云上数据处理:授权策略中 action 设置为
cos:GetObject
、cos:PutObject
(注意 GetObject 对应的 resource 为源文件,PutObject 对应的 resource 为转存的文件)。服务开通
使用该功能将默认为您开通数据万象,并绑定存储桶,无需角色授权,即可直接使用。
使用限制
支持格式:支持处理 JPG、BMP、GIF、PNG、WebP 格式,开通 图片高级压缩功能 后,可支持AVIF、HEIF、TPG 格式的解码和处理操作。
静图体积限制:处理图片的原图及结果图的大小不超过32MB、宽高不超过50000像素且总像素不超过2.5亿像素。
WebP图片限制:处理图片原图及结果图大小不超过32MB、宽高不超过16383像素且总像素不超过2.5亿像素。
动图体积限制:原图及处理图宽 x 高 x 帧数不超过2.5亿像素。
动图帧数限制:不超过300帧。
接口示例
1. 下载时处理
GET /<ObjectKey>?watermark/2/text/<encodedText>/font/<encodedFont>/fontsize/<fontSize>/fill/<encodedColor>/dissolve/<dissolve>/gravity/<gravity>/dx/<dx>/dy/<dy>/batch/<type>/degree/<degree>/shadow/<shadow> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>
说明
请忽略上面的空格与换行符。
2. 上传时处理
PUT /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations:{"is_pic_info": 1,"rules": [{"fileid": "exampleobject","rule": "watermark/2/text/<encodedText>/font/<encodedFont>/fontsize/<fontSize>/fill/<encodedColor>/dissolve/<dissolve>/gravity/<gravity>/dx/<dx>/dy/<dy>/batch/<type>/degree/<degree>/shadow/<shadow>"}]}
3. 云上数据处理
POST /<ObjectKey>?image_process HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-length: SizeAuthorization: Auth StringPic-Operations:{"is_pic_info": 1,"rules": [{"fileid": "exampleobject","rule": "watermark/2/text/<encodedText>/font/<encodedFont>/fontsize/<fontSize>/fill/<encodedColor>/dissolve/<dissolve>/gravity/<gravity>/dx/<dx>/dy/<dy>/batch/<type>/degree/<degree>/shadow/<shadow>"}]}
说明
Authorization: Auth String(详情请参见 请求签名 文档)。
通过子账号使用时,需要授予相关的权限,详情请参见 授权粒度详情 文档。
Pic-Operations 为 json 格式的字符串,具体参数信息可参考 图片持久化处理。
当 fileid 与 ObjectKey 相同时,处理后的图片将覆盖原图存储;不相同时将分别存储原图和处理后图片。
fileid 的值需要经过 URLEncode。
处理参数说明
操作名称:watermark,数字2,表示水印类型为文字水印。
参数 | 含义 | 是否必选 |
ObjectKey | 对象文件名,例如 folder/sample.jpg | 是 |
/text/ | 是 | |
/font/ | 否 | |
/fontsize/ | 否 | |
/fill/ | 否 | |
/dissolve/ | 文字透明度,取值1 - 100,默认90(90%不透明度) | 否 |
/gravity/ | 否 | |
/dx/ | 水平(横轴)边距,单位为像素,缺省值为0 | 否 |
/dy/ | 垂直(纵轴)边距,单位为像素,默认值为0 | 否 |
/degree/ | 文字水印的旋转角度设置,取值范围为0 - 360,默认0 | 否 |
/batch/ | 平铺水印功能,可将文字水印平铺至整张图片。值为1时,表示开启平铺水印功能 | 否 |
/spacing/ | 平铺模式下的水平、垂直间距相对文字水印贴图的宽高百分比,范围为[0,100],默认10 | 否 |
/shadow/ | 文字阴影效果,有效值为[0,100],默认为0,表示无阴影 | 否 |
/scatype/ | 根据原图的大小,缩放调整文字水印的大小,需要与 spcent 搭配使用: 当 scatype 设置为1时,按原图的宽缩放 当 scatype 设置为2时,按原图的高缩放 当 scatype 设置为3时,按原图的整体面积缩放 | 否 |
/spcent/ | 与 scatype 搭配使用: 当 scatype 设置为1时,该有效值为[1, 1000],单位为千分比 当 scatype 设置为2时,该有效值为[1, 1000],单位为千分比 当 scatype 设置为3时,该有效值为[1, 250],单位为千分比 | 否 |
九宫格方位图
九宫格方位图可为图片的多种操作提供位置参考。红点为各区域位置的原点(通过 gravity 参数选定各区域后位移操作会以相应远点为参照)。
注意
当 gravity 参数设置为 center 时,dx、dy 参数无效。
当 gravity 参数设置为 north 或 south 时,dx 参数无效(水印会水平居中)。
当 gravity 参数设置为 west 或 east 时,dy 参数无效(水印会垂直居中)。
实际案例
说明
案例一:添加文字水印
http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?watermark/2/text/6IW-6K6v5LqRwrfkuIfosaHkvJjlm74/fill/IzNEM0QzRA/fontsize/20/dissolve/50/gravity/northeast/dx/20/dy/20/batch/1/degree/45
添加文字水印后,效果如下:
案例二:添加文字水印并携带私有文件签名
处理方式同上,仅增加签名部分,并与图片处理参数以“&”连接,示例如下:
http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?q-sign-algorithm=<signature>&watermark/2/text/6IW-6K6v5LqRwrfkuIfosaHkvJjlm74/fill/IzNEM0QzRA/fontsize/20/dissolve/50/gravity/northeast/dx/20/dy/20/batch/1/degree/45
说明
注意事项
为了避免未授权人员通过访问不携带处理参数的链接实现访问和下载原图的情况,您可同时将处理参数签入到请求签名中,处理参数整体是参数的 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