阅读本文,您可以获取 Node SDK 盲水印的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Node SDK 的安装及初始化操作。
本节为您介绍盲水印相关接口的功能和调用示例。
您可以调用 CreateImageHmEmbed 接口添加盲水印。详细的参数说明可参见 CreateImageHmEmbed 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi";
export async function CreateImageHmEmbedDemo() {
try {
const imagexService = new imagex.ImagexService({
// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
accessKeyId: process.env.VOLC_ACCESSKEY,
secretKey: process.env.VOLC_SECRETKEY,
});
const requestParam = {
// 服务 ID。
// <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li>
// <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li>
ServiceId: "oz***y2",
// 待添加盲水印的原图 Uri。
StoreUri: "tos-boe-i-oz***y2/cf***9d.jpg",
// 算法模型,取值如下所示:
// * default:文本嵌入模型,默认文本嵌入模型;
// * adapt_resize:画质自适应文本嵌入模型。
Algorithm: "default",
// 自定义盲水印文本内容。
// * 文本嵌入模型支持最长可嵌入115个水印内容字符。
// * 画质自适应文本嵌入模型无水印内容长度限制。
Info: "你好abc123%^$%",
// 输出图片格式,默认 png,支持图片格式有:png、jpeg、webp。
OutFormat: "png",
// 输出图片质量参数。取值范围为 [1,100],默认为 75。
// 对于 PNG 无损压缩,其他格式下其值越小,压缩率越高,画质越差。
OutQuality: 75,
// 算法强度,强度越高,图像抵抗攻击性能越强。<br>取值如下所示:
// * low:低强度,适用于纯色图场景以及对图像质量要求高;
// * medium:中强度,默认中强度;
// * strong:高强度,适合图像纹理丰富时使用。
StrengthLevel: "strong",
};
const res = await imagexService.CreateImageHmEmbed(requestParam);
console.log("res", res);
} catch (err) {
console.error(err);
}
}
您可以调用 CreateImageHmExtract 接口提取盲水印。详细的参数说明可参见 CreateImageHmExtract 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi";
export async function CreateImageHmExtractDemo() {
try {
const imagexService = new imagex.ImagexService({
// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
accessKeyId: process.env.VOLC_ACCESSKEY,
secretKey: process.env.VOLC_SECRETKEY,
});
const requestParam = {
// 待提取水印图对应的服务 ID。
// <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li>
// <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li>
ServiceId: "97**sh",
// 待提取盲水印的图片的 URI。StoreUri 和 ImageUrl 都不为空时,以 StoreUri 为准。
StoreUri: "tos-cn-i-97**sh/example",
// 待提取盲水印图片的 URL。StoreUri 和 ImageUrl 都不为空时,以 StoreUri 为准。
ImageUrl: "https://test.com/example.png",
// 算法模型,取值如下所示:
// <li> default:文本嵌入基础模型 </li>
// <li> adapt_resize:画质自适应文本嵌入模型。 </li>
// <li> adapt: 文本嵌入自适应模型(AIGC 适用) </li>
// <li> natural:文本嵌入基础模型(彩色图片通用) </li>
// <li> tracev1:前景图层水印模型(纯色背景适用) </li>
// <li> tracev2:前景图层水印模型(彩色背景通用) </li>
// warning
// 指定 tracev1 或 tracev2 模型时,请传入已添加对应模型水印的背景网页的**截图**。若模型错误,则无法提取水印。
Algorithm: "default",
};
const res = await imagexService.CreateImageHmExtract(requestParam);
console.log("res", res);
} catch (err) {
console.error(err);
}
}
您可以调用 CreateHiddenWatermarkImage 接口创建盲水印前背景图层。详细的参数说明可参见 CreateHiddenWatermarkImage 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi";
export async function CreateHiddenWatermarkImageDemo() {
try {
const imagexService = new imagex.ImagexService({
// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
accessKeyId: process.env.VOLC_ACCESSKEY,
secretKey: process.env.VOLC_SECRETKEY,
});
const requestParam = {
// 用于存储结果图和计量计费的服务 ID。
// <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li>
// <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li>
ServiceId: "h1**0k",
// 盲水印模型,取值如下所示:
// <li> tracev1:前景图层水印模型(纯色背景适用)。 </li>
//
// 该模型可以生成带有水印的透明图像,但仅适用于**纯色**网页泄露溯源场景。该模型可有效抵抗常见的社交软件传播。然而,该算法对页面背景色的影响相对较大,因此不适合用于保护多彩页面或图片,例如商品页面。
// <li> tracev2:前景图层水印模型(彩色背景通用) </li>
// 该模型可以生成含水印的透明图像,主要应用在前端页面截图泄露溯源场景。该模型生成的水印纹理密集,在正常界面添加后肉眼基本不可见(截图放大后存在肉眼可见的水印纹理),可抵抗常见的社交软件传播。
Algorithm: "tracev1,tracev2",
// 盲水印强度,取值如下所示:
// <li> low:低强度,适用于对图像质量要求高。 </li>
// <li> medium:中强度 </li>
// <li> strong:高强度,适合图像纹理丰富时使用。 </li>
Strength: "medium",
// 自定义盲水印文本信息,最多支持 128 个字符。
Info: "你好",
};
const res = await imagexService.CreateHiddenWatermarkImage(requestParam);
console.log("res", res);
} catch (err) {
console.error(err);
}
}