控制台指南

最佳实践

开发者指南

数据湖存储

API 文档

SDK 文档

数据库文档捉虫大赛邀您参加,好礼多多> HOT

功能概述

对象存储通过数据万象 watermark 接口提供实时文字水印处理功能。

注意:

图片处理功能为收费项,由数据万象收取,详细的计费说明请参见数据万象 图片处理费用

该功能支持以下的处理方式:

  • 下载时处理
  • 上传时处理
  • 云上数据处理

限制说明

  • 支持格式:支持处理 JPG、BMP、GIF、PNG、WebP 格式,并且支持 HEIF 格式的解码和处理操作。
  • 静图体积限制:处理图片原图大小不超过32MB、宽高不超过50000像素且总像素不超过2.5亿像素,处理结果图宽高设置不超过50000像素。
  • WebP图片限制:处理图片原图大小不超过32MB、宽高不超过16383像素且总像素不超过2.5亿像素,处理结果图宽高设置不超过16383像素。
  • 动图体积限制:原图及处理图宽 x 高 x 帧数不超过2.5亿像素。
  • 动图帧数限制:gif 帧数限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.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": "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.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": "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 格式的字符串,具体参数信息可参考 图片持久化处理
  • fileidObjectKey 相同时,处理后的图片将覆盖原图存储;不相同时将分别存储原图和处理后图片。
  • fileid 的值需要经过 URL 安全的 Base64 编码

处理参数说明

操作名称:watermark,数字2,表示水印类型为文字水印。

参数 含义 是否必选
ObjectKey 对象文件名,例如 folder/sample.jpg。
/text/ 水印内容,需要经过 URL 安全的 Base64 编码
/font/ 水印字体,需要经过 URL 安全的 Base64 编码,默认值 tahoma.ttf 。水印字体列表参考 支持字体列表
/fontsize/ 水印文字字体大小,单位为磅,缺省值13。如需按照原图片的大小比例缩放文字水印,请将文字水印转换为 PNG 图片,并参考 图片水印 文档进行配置
/fill/ 字体颜色,缺省为灰色,需设置为十六进制 RGB 格式(例如 #FF0000),详情可参考 RGB 编码表,需经过 URL 安全的 Base64 编码,默认值为 #3D3D3D
/dissolve/ 文字透明度,取值1 - 100,默认90(90%不透明度)
/gravity/ 文字水印位置,九宫格位置(参见九宫格方位图),默认值 SouthEast
/dx/ 水平(横轴)边距,单位为像素,缺省值为0
/dy/ 垂直(纵轴)边距,单位为像素,默认值为0
/batch/ 平铺水印功能,可将文字水印平铺至整张图片。值为1时,表示开启平铺水印功能
/spacing/ 平铺模式下的水平、垂直间距相对文字水印贴图的宽高百分比,范围为[0,100],默认10
/degree/ 当 batch 值为1时生效。文字水印的旋转角度设置,取值范围为0 - 360,默认0
/shadow/ 文字阴影效果,有效值为[0,100],默认为0,表示无阴影
/scatype/ 根据原图的大小,缩放调整文字水印的大小:
  • 当 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

    说明:

    <signature> 为签名部分,获取方式请参考 请求签名

    注意事项

    为了避免未授权人员通过访问不携带处理参数的链接实现访问和下载原图的情况,您可同时将处理参数签入到请求签名中,处理参数整体是参数的 key,value 为空,如下是简单的示例(仅做样式参考,可能已经过期无法直接访问),详细计算方法请参见 请求签名

    http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?q-sign-algorithm=sha1&q-ak=AKID********************&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=26a429871963375c88081ef60247c5746e834a98&watermark/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn/gravity/southeast

    目录