简介
本文档提供关于盲水印的相关的 API 概览以及 SDK 示例代码。
注意:
COS Node.js SDK 版本需要大于等于 v2.12.6。
添加盲水印
功能说明
盲水印功能是指将水印以不可见的形式添加到图片中,与常用的明水印相比,盲水印不会破坏图片的内容完整性。
使用案例
上传时添加盲水印
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/8629const filePath = 'temp-file-to-upload'; // 本地文件路径cos.putObject({Bucket: 'examplebucket-1250000000', // Bucket 格式:test-1250000000,必填Region: 'COS_REGION', // Bucket所在地域,比如ap-beijing,必填Key: '1.png', // 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必填Body: fs.createReadStream(filePath), // 上传文件对象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);});
对云上图片添加盲水印
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/8629function 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);},);}
下载时添加盲水印
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/8629cos.getObject({Bucket: 'examplebucket-1250000000', // Bucket 格式:test-1250000000,必填Region: 'COS_REGION', // Bucket所在地域,比如ap-beijing,必填Key: '1.png', // 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必填Query: {'watermark/3/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn': ''}}, function (err, data) {console.log(err || data);fs.writeFileSync('filepath', data.Body); // 将图片内容保存本地});
生成带盲水印的访问 url
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/8629function 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) {// 使用浏览器打开url预览或触发浏览器下载console.log(data.Url);}},);}
提取盲水印
功能说明
对已添加了盲水印的图片,需要使用提取盲水印接口才能提取到盲水印,不论是图片盲水印还是文字盲水印,最终提取出来都是以水印图片的形式返回。
使用案例
上传时提取盲水印
上传时提取盲水印的请求包与上传时添加盲水印一致,只需在请求包头部增加图片处理参数 Pic-Operations 并使用提取盲水印参数(watermark/4)即可。
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/8629const filePath = 'temp-file-to-upload'; // 本地文件路径cos.putObject({Bucket: 'examplebucket-1250000000', // Bucket 格式:test-1250000000,必填Region: 'COS_REGION', // Bucket所在地域,比如ap-beijing,必填Key: '1.png', // 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必填Body: fs.createReadStream(filePath), // 上传文件对象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/8629function 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);},);}