简介
本文档提供关于盲水印的相关的 API 概览以及 SDK 示例代码。
注意:
COS 小程序 SDK 版本需要大于等于 v1.5.0。
添加盲水印
功能说明
盲水印支持在上传时添加和下载时添加。
使用案例
上传时添加盲水印
<view><button type="primary" bindtap="button">上传时添加盲水印</button></view>
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953Page({button: function () {wx.chooseMessageFile({count: 10,type: 'all',success: function (res) {var file = res.tempFiles[0];wxfs.readFile({filePath: file.path,success: function (res) {cos.putObject({Bucket: 'examplebucket-1250000000', // Bucket 格式:test-1250000000,必填Region: 'COS_REGION', // Bucket所在地域,比如ap-beijing,必填Key: file.name,Body: res.data,Headers: {// 万象持久化接口,上传时持久化'Pic-Operations': JSON.stringify({is_pic_info: 1,// fileid 如果设置中文,需要经过URLEncode,比如 fileid: encodeURIComponent('图片.jpg')rules: [{ fileid: 'desample_photo.jpg', rule: 'watermark/3/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn' }],})},},(err, data) => {console.log(err || data);},);},fail: (err) => console.error(err),});},fail: (err) => console.error(err),});},});
对云上图片添加盲水印
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953function handleFileInBucket() {cos.request({Bucket: 'examplebucket-1250000000', // Bucket 格式:test-1250000000,必填Region: 'COS_REGION', // Bucket所在地域,比如ap-beijing,必填Key: '1.png', // 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必填Method: 'POST', // 固定值Action: 'image_process', // 固定值Headers: {// 万象持久化接口,上传时持久化'Pic-Operations': JSON.stringify({is_pic_info: 1,// fileid 如果设置中文,需要经过URLEncode,比如 fileid: encodeURIComponent('图片.jpg')rules: [{ fileid: 'desample_photo.jpg', rule: 'watermark/3/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn' }],})},},function (err, data) {console.log(err || data);},);}
下载时添加盲水印
<view><button type="primary" bindtap="button">下载时添加盲水印</button></view>
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953Page({button: function () {cos.getObject({Bucket: 'examplebucket-1250000000', // Bucket 格式:test-1250000000,必填Region: 'COS_REGION', // Bucket所在地域,比如ap-beijing,必填Key: 'exampleobject', // 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必填Query: {'watermark/3/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn': ''}},(err, data) => {console.log(err || data);},);},});
生成带盲水印的访问 url
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953function getObjectUrl() {cos.getObjectUrl({Bucket: 'examplebucket-1250000000', // Bucket 格式:test-1250000000,必填Region: 'COS_REGION', // Bucket所在地域,比如ap-beijing,必填Key: 'exampleobject', // 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必填Query: {'watermark/3/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn': ''},Sign: true, // url是否带签名,私有读必须带签名才可访问},function (err, data) {if (data) {console.log(data.Url);}},);}
提取盲水印
功能说明
对已添加了盲水印的图片,需要使用提取盲水印接口才能提取到盲水印,不论是图片盲水印还是文字盲水印,最终提取出来都是以水印图片的形式返回。
使用案例
上传时提取盲水印
上传时提取盲水印的请求包与上传时添加盲水印一致,只需在请求包头部增加图片处理参数 Pic-Operations 并使用提取盲水印参数(watermark/4)即可。
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953function handleFileInUploading(file) {cos.putObject({Bucket: 'examplebucket-1250000000', // Bucket 格式:test-1250000000,必填Region: 'COS_REGION', // Bucket所在地域,比如ap-beijing,必填Key: file.name,Body: file,Headers: {// 万象持久化接口,上传时持久化'Pic-Operations': JSON.stringify({is_pic_info: 1,// fileid 如果设置中文,需要经过URLEncode,比如 fileid: encodeURIComponent('图片.jpg')rules: [{ fileid: 'desample_photo.jpg', rule: 'watermark/4/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn' }],})},},function (err, data) {console.log(err || data);},);}
对云上图片提取盲水印
对云上图片提取盲水印的请求包与对云上图片添加盲水印一致,只需在请求包头部增加图片处理参数 Pic-Operations 并使用提取盲水印参数(watermark/4)即可。
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953function handleFileInBucket() {cos.request({Bucket: 'examplebucket-1250000000', // Bucket 格式:test-1250000000,必填Region: 'COS_REGION', // Bucket所在地域,比如ap-beijing,必填Key: '1.png', // 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必填Method: 'POST', // 固定值Action: 'image_process', // 固定值Headers: {// 万象持久化接口,上传时持久化'Pic-Operations': JSON.stringify({is_pic_info: 1,// fileid 如果设置中文,需要经过URLEncode,比如 fileid: encodeURIComponent('图片.jpg')rules: [{ fileid: 'desample_photo.jpg', rule: 'watermark/4/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn' }],})},},function (err, data) {console.log(err || data);},);}