图像修复

最近更新时间:2024-10-17 16:16:52

我的收藏

简介

本文档提供关于数据万象图像修复的 API 概览以及 SDK 示例代码。
注意:
COS Javascript SDK 版本需要大于等于 v1.3.2。
待处理的图片,原图大小不超过 32MB。
宽高不超过 50000 像素且总像素不超过 2.5 亿像素,处理结果图宽高设置不超过 9999 像素。
API
说明
腾讯云数据万象通过 ImageRepair 接口检测图片中的水印并将其擦除。

上传时处理

下面示例展示了如何在上传图片时自动实现图像修复。 图片上传完成后,COS 会存储原始图片和已处理过的图片。后续用户可以通过普通的下载请求获取处理结果。

示例代码

<!-- html 页面 DOM 元素 -->

<!-- 选择要上传的文件 -->
<input id="fileSelector" type="file" />
<!-- 点击按钮上传 -->
<input id="submitBtn" type="submit" />
function handleFileInUploading(file) {
// sdk引入以及初始化请参考:https://cloud.tencent.com/document/product/436/11459
cos.putObject(
{
// 需要替换成您自己的存储桶信息
Bucket: 'examplebucket-1250000000', // 存储桶,必须字段
Region: 'COS_REGION', // 存储桶所在地域,必须字段 如 ap-beijing
Key: file.name, // 对象文件名,例如:folder/document.jpg,可以设置为本地文件的名称file.name
Body: file, // 选择要上传的文件
Headers: {
// 通过 ImageRepair 接口使用图像修复功能:指定遮罩图片地址 URL 安全的 Base64 编码:aHR0c...XXX
'Pic-Operations': JSON.stringify({
is_pic_info: 1,
rules: [{ fileid: 'test.jpg', rule: 'ci-process=ImageRepair&MaskPic=aHR0c...XXX' }]
}),
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data);
}
}
);
}

document.getElementById('submitBtn').onclick = function (e) {
var file = document.getElementById('fileSelector').files[0];
if (!file) {
document.getElementById('msg').innerText = '未选择上传文件';
return;
}
handleFileInUploading(file);
};

参数说明

参数名称
描述
类型
是否必选
Bucket
存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式
String
Region
存储桶所在地域,枚举值请参见 地域和访问域名
String
Key
对象文件名,例如:folder/document.jpg。
String
Body
文件内容,一般传入选择的文件file对象
File/Blob
Pic-Operations
详情请参见 图像修复处理参数
JsonString

回调函数说明

function(err, data) { ... }
参数名称
参数描述
类型
err
请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功则为空,更多详情请参见 错误码
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object
data
请求成功时返回的对象,如果请求发生错误,则为空
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object
- Response
响应结果 详情请参见 图像修复
Object

对云上数据进行图像修复

下面示例展示了如何在对已存储在 COS 的图片进行图像修复操作,并将结果存入到 COS。

示例代码

<!-- html 页面 DOM 元素 -->

<!-- 点击按钮请求对云上数据进行图像修复 -->
<input id="submitBtn" type="submit" />
function handleFileInBucket() {
// sdk引入以及初始化请参考:https://cloud.tencent.com/document/product/436/11459
cos.request(
{
// 需要替换成您自己的存储桶信息
Bucket: 'examplebucket-1250000000', // 存储桶,必须字段
Region: 'COS_REGION', // 存储桶所在地域,必须字段 如 ap-beijing
Key: '1/jpg', // 对象文件名,例如:folder/document.jpg。
Method: 'POST', // 固定值
Action: 'image_process', // 固定值
Headers: {
// 通过 ImageRepair 接口使用图像修复功能:指定遮罩图片地址 URL 安全的 Base64 编码:aHR0c...XXX
'Pic-Operations': JSON.stringify({
rules: [{ fileid: 'test.jpg', rule: 'ci-process=ImageRepair&MaskPic=aHR0c...XXX' }]
}),
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data);
}
}
);
}

document.getElementById('submitBtn').onclick = function (e) {
handleFileInBucket();
};
参数名称
描述
类型
是否必选
Bucket
存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式
String
Region
存储桶所在地域,枚举值请参见 地域和访问域名
String
Key
对象文件名,例如:folder/document.jpg。
String
Method
固定值:POST
String
Action
固定值:image_process
String
Pic-Operations
详情请参见 图像修复处理参数
JsonString

回调函数说明

function(err, data) { ... }
参数名称
参数描述
类型
err
请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功则为空,更多详情请参见 错误码
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object
data
请求成功时返回的对象,如果请求发生错误,则为空
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object
- Response
响应结果 详情请参见 图像修复
Object

下载时使用图像修复

下面示例展示了如何在下载图片时实现图像修复。

示例代码

<!-- html 页面 DOM 元素 -->

<!-- 点击按钮下载文件并在下载时使用图像修复 -->
<input id="submitBtn" type="submit" />
function getObject() {
// sdk引入以及初始化请参考:https://cloud.tencent.com/document/product/436/11459
cos.request(
{
// 需要替换成您自己的存储桶信息
Bucket: 'examplebucket-1250000000', // 存储桶,必须字段
Region: 'COS_REGION', // 存储桶所在地域,必须字段 如 ap-beijing
Method: 'GET', // 固定值
Key: '1/jpg', // 对象文件名,例如:folder/document.jpg。
Query: {
'ci-process': 'ImageRepair', // 固定值
MaskPic: 'aHR0c...XXX' /*非必需,遮罩(白色区域为需要去除的水印位置)图片地址,需要经过 URL 安全的 Base64 编码*/,
//MaskPoly:'[[[608, 794], [1024, 794]],[[1295, 62],[1295, 30]]]' /* 非必需,顺时针输入多边形的每个点的坐标,MaskPoly 同时与 MaskPic 填写时,优先采用 MaskPic 的值*/,
},
RawBody: true, // 固定为true,不解析请求体Body
DataType: 'blob', // 设置为blob,返回Body为图片blob
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data);
}
}
);
}

参数说明

cos.request 方法参数说明:
参数名称
描述
类型
是否必选
Bucket
存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式
String
Region
存储桶所在地域,枚举值请参见 地域和访问域名
String
Method
固定值:GET
String
Key
对象文件名,例如:folder/document.jpg。
String
Query
其他请求参数
Container
RawBody
固定为true,不解析请求体Body
Boolean
DataType
设置为blob,返回Body为图片blob
String
Query 参数说明:
参数名称
描述
类型
是否必选
ci-process
数据万象处理能力,图像修复固定为 ImageRepair。
String
MaskPic
遮罩(白色区域为需要去除的水印位置)图片地址,需要经过 URL 安全的 Base64 编码。例如,遮罩图片为 http://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/shuiyin_2.png ,则该处编码后的字符串为 aHR0cDovL2V4YW1wbGVidWNrZXQtMTI1MDAwMDAwMC5jb3MuYXAtc2hhbmdoYWkubXlxY2xvdWQuY29tL3NodWl5aW5fMi5wbmc
String
MaskPoly
例如:[[[608, 794], [1024, 794], [1024, 842], [608, 842]],[[1295, 62], [1295, 30], [1597, 32],[1597, 64]]] ,顺时针输入多边形的每个点的坐标,每个多边形: [[x1, y1], [x2, y2]...], 形式为三维矩阵(多个多边形:[多边形1, 多边形2])或二维矩阵(单个多边形),且需要经过 URL 安全的 Base64 编码。MaskPoly 同时与 MaskPic 填写时,优先采用 MaskPic 的值。
String

回调函数说明

function(err, data) { ... }
参数名称
参数描述
类型
err
请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功则为空,更多详情请参见 错误码
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object
data
请求成功时返回的对象,如果请求发生错误,则为空
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object
- Response
响应结果 详情请参见 图像修复
Object

相关链接