盲水印

最近更新时间:2024-08-12 16:37:51

我的收藏

简介

本文档提供关于盲水印的相关的 API 概览以及 SDK 示例代码。
注意:
COS Node.js SDK 版本需要大于等于 v2.12.6。
API
操作描述
用于添加盲水印
用于提取盲水印

添加盲水印

功能说明

盲水印功能是指将水印以不可见的形式添加到图片中,与常用的明水印相比,盲水印不会破坏图片的内容完整性。

使用案例

上传时添加盲水印

// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/8629
const 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/8629
function 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/8629
cos.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/8629
function 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/8629
const 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/8629
function 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);
},
);
}