有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

简介

本文档提供关于数据万象图像智能裁剪的 API 概览以及 SDK 示例代码。
注意:
COS Node.js SDK 版本需要大于等于 v2.11.2。
待处理的图片,原图大小不超过 5MB。
API
说明
腾讯云数据万象通过 AIImageCrop 接口对图像进行智能裁剪,支持持久化、云上处理及下载时处理。

上传时处理

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

示例代码

function handleFileInUploading() {
// sdk引入以及初始化请参考:https://cloud.tencent.com/document/product/436/8629
const filePath = 'temp-file-to-upload'; // 本地文件路径
cos.putObject(
{
// 需要替换成您自己的存储桶信息
Bucket: 'examplebucket-1250000000', // 存储桶,必须字段
Region: 'COS_REGION', // 存储桶所在地域,必须字段 如 ap-beijing
Key: 'folder/document.jpg', // 对象文件名,例如:folder/document.jpg
Body: fs.createReadStream(filePath), // 上传文件对象,必填
ContentLength: fs.statSync(filePath).size, // 上传文件对象大小,当上传Body为文件流且需要正确展示上传进度时必填
Headers: {
// 通过 AIImageCrop 接口使用图像智能裁剪功能:指定图片剪区域的宽度 1,高度 2
'Pic-Operations': JSON.stringify({
is_pic_info: 1,
rules: [{ fileid: 'test.jpg', rule: 'ci-process=AIImageCrop&width=1&width=2' }]
}),
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data);
}
}
);
}
handleFileInUploading();

参数说明

参数名称
描述
类型
是否必选
Bucket
存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式
String
Region
存储桶所在地域,枚举值请参见 地域和访问域名
String
Key
对象文件名,例如:folder/document.jpg
String
Body
文件内容
Buffer/String
ContentLength
上传文件内容长度,需要展示进度时必填
Number
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。

示例代码

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: {
// 通过 AIImageCrop 接口使用图像智能裁剪功能:指定图片剪区域的宽度 1,高度 2
'Pic-Operations': JSON.stringify({
rules: [{ fileid: 'test.jpg', rule: 'ci-process=AIImageCrop&width=1&width=2' }]
}),
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data);
}
}
);
}
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

下载时使用图像智能裁剪

下面示例展示了如何在下载图片时实现图像智能裁剪。

示例代码

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': 'AIImageCrop', // 固定值
width: 5 /*必需,需要裁剪区域的宽度*/,
height: 5 /*必需,需要裁剪区域的高度*/,
//fixed:1 /*非必需,是否严格按照 width 和 height 的值进行输出*/,
//detect-url:'http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg' /* 非必须,可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 Key ,填写了 detect-url 时,后台会处理 detect-url 链接,detect-url 需要进行 UrlEncode */
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data);
const localPath = 'xxx'; // 填写要写入的本地文件路径
fs.writeFileSync(localPath, data.Body); // 将图片内容保存本地路径
}
}
);
}
getObject();

参数说明

cos.request 方法参数说明:
参数名称
描述
类型
是否必选
Bucket
存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式
String
Region
存储桶所在地域,枚举值请参见 地域和访问域名
String
Method
固定值:GET
String
Key
对象文件名,例如:folder/document.jpg。
String
Query
其他请求参数
Container
Query 参数说明:
参数名称
描述
类型
是否必选
ci-process
数据万象处理能力,智能裁剪固定为 AIImageCrop。
String
width
需要裁剪区域的宽度,与 height 共同组成所需裁剪的图片宽高比例;输入数字请大于0、小于图片宽度的像素值。
Integer
height
需要裁剪区域的高度,与 width 共同组成所需裁剪的图片宽高比例;输入数字请大于0、小于图片高度的像素值;width : height 建议取值在[1, 2.5]之间,超过这个范围可能会影响效果。
Integer
fixed
是否严格按照 width 和 height 的值进行输出。取值为0时,宽高比例(width : height)会简化为最简分数,即如果 width 输入10、height 输入20,会简化为1:2;取值为1时,输出图片的宽度等于 width,高度等于 height;默认值为0。
Integer
detect-url
处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 Key ,填写了 detect-url 时,后台会处理 detect-url 链接。
detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为 http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg
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

相关链接