盲水印

最近更新时间:2024-08-12 16:43:01

我的收藏

简介

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

添加盲水印

功能说明

盲水印支持在上传时添加和下载时添加。

使用案例

上传时添加盲水印

<view>
<button type="primary" bindtap="button">上传时添加盲水印</button>
</view>
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953
Page({
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/31953
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);
},
);
}

下载时添加盲水印

<view>
<button type="primary" bindtap="button">下载时添加盲水印</button>
</view>
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953
Page({
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/31953
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) {
console.log(data.Url);
}
},
);
}

提取盲水印

功能说明

对已添加了盲水印的图片,需要使用提取盲水印接口才能提取到盲水印,不论是图片盲水印还是文字盲水印,最终提取出来都是以水印图片的形式返回。

使用案例

上传时提取盲水印

上传时提取盲水印的请求包与上传时添加盲水印一致,只需在请求包头部增加图片处理参数 Pic-Operations 并使用提取盲水印参数(watermark/4)即可。
// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953
function 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/31953
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);
},
);
}