简介
本文档提供关于图片水印处理接口的相关的 API 概览以及 SDK 示例代码。
注意:
COS 小程序 SDK 版本需要大于等于 v1.5.0。
API | 操作描述 |
提供图片水印处理功能 |
上传时使用图片水印
下面示例展示了如何在上传图片时实现图片水印处理。
图片上传完成后,COS 会存储原始图片和已添加水印的图片。后续用户可以通过普通的下载请求获取处理结果。
示例代码
<view><button type="primary" bindtap="button">上传时使用图片水印处理</button></view>
Page({button: function () {const config = {// 需要替换成您自己的存储桶信息Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */};wx.chooseMessageFile({count: 2,type: 'all',success: function (res) {var file = res.tempFiles[0];wxfs.readFile({filePath: file.path,success: function (res) {cos.putObject({Bucket: config.Bucket, // Bucket 格式:test-1250000000Region: config.Region,Key: file.name,Body: res.data,Headers: {'Pic-Operations':'{"is_pic_info": 1, "rules": [{"fileid": "exampleobject", "rule": "watermark/1/image/<encodedURL>/gravity/SouthEast/dx/10/dy/10/blogo/1"}]}',},},requestCallback,);},fail: (err) => console.error(err),});},fail: (err) => console.error(err),});},});
对云上数据进行图片水印处理
下面示例展示了如何在对已存储在 COS 的图片进行相应处理操作,并将结果存入到 COS。
示例代码
<view><button type="primary" bindtap="button">对云上数据进行图片水印处理</button></view>
Page({button: function () {// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953const config = {// 需要替换成您自己的存储桶信息Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */};cos.request({Bucket: config.Bucket,Region: config.Region,Key: '1.jpeg',Method: 'POST',Action: 'image_process',Headers: {'Pic-Operations':'{"is_pic_info": 1, "rules": [{"fileid": "exampleobject", "rule": "watermark/1/image/<encodedURL>/gravity/SouthEast/dx/10/dy/10/blogo/1"}]}',},},requestCallback,);},});
下载时使用图片水印处理
下面示例展示了如何在下载图片时实现图片水印处理。
示例代码
<view><button type="primary" bindtap="button">下载时使用图片水印处理</button></view>
Page({button: function () {// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953const config = {// 需要替换成您自己的存储桶信息Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */};cos.getObject({Bucket: config.Bucket,Region: config.Region,Key: 'test.jpg',QueryString: `watermark/1/image/<encodedURL>/gravity/SouthEast/dx/10/dy/10/blogo/1`,},requestCallback,);},});
参数说明
参数名称 | 参数描述 | 类型 | 是否必填 |
ObjectKey | 对象文件名,例如 folder/sample.jpg | String | 是 |
watermark/1 | 代表当前的处理为图片水印 | String | 是 |
/image/ | 水印图片的链接,需要经过 URL 安全 的 Base64 编码 | String | 是,与/image_key/参数二选一 |
/image_key/ | 如果您在添加水印时不希望暴露水印所在的图片地址,可使用该参数。该参数表示存储桶中水印图片所在的路径及名称,需要经过 URL 安全 的 Base64 编码 | String | 是,与/image/参数二选一 |
/gravity/ | 图片水印位置,九宫格位置,默认值为 SouthEast | String | 否 |
/dx/ | 水平(横轴)边距,单位为像素,默认值为0 | String | 否 |
/dy/ | 垂直(纵轴)边距,单位为像素,默认值为0 | String | 否 |
/blogo/ | 水印图适配功能,仅适用于水印图尺寸比原图大的场景(如水印墙)。共有两种类型: 当 blogo 设置为1时,水印图会被缩小至与原图相似大小后添加 当 blogo 设置为2时,水印图会被直接裁剪至与原图相似大小后添加 | String | 否 |
/scatype/ | 根据原图的大小,缩放调整水印图的大小,需要与 spcent 搭配使用: 当 scatype 设置为1时,按原图的宽缩放 当 scatype 设置为2时,按原图的高缩放 当 scatype 设置为3时,按原图的整体面积缩放 | String | 否 |
/spcent/ | 与 scatype 搭配使用: 当 scatype 设置为1时,该有效值为[1,1000],单位为千分比 当 scatype 设置为2时,该有效值为[1,1000],单位为千分比 当 scatype 设置为3时,该有效值为[1,1000],单位为千分比 | String | 否 |
/dissolve/ | 图片水印的透明度,取值为1 - 100,默认值为90 | String | 否 |
/batch/ | 平铺水印功能,可将图片水印平铺至整张图片。值为1时,表示开启平铺水印功能 | String | 否 |
/degree/ | 当 batch 值为1时生效,图片水印的旋转角度设置,取值范围为0 - 360,默认值为0 | String | 否 |