图片数字水印嵌入接口
更新时间:2024-05-29
创建图片数字水印嵌入任务
接口描述
用户通过该接口向图片中嵌入文字或图片形式的数字水印。图片数字水印服务目前支持两种算法,用户可根据需求选择合适的算法(通过请求参数的algorithmVersion配置)。
算法0(二值图片嵌入算法):支持嵌入图片和文字,任何水印内容都将以二值图片形式嵌入到载体图片中(文字会自动转换为图片)。因此,无论嵌入图片还是文字,提取水印结果始终为图片,需要人工查看提取结果图片是否存在水印。该算法能够抵抗一定程度的缩放、裁剪、遮挡、截屏等攻击,但抗图片压缩能力较弱,水印容量相对较小。
算法1(文字编码嵌入算法):仅支持嵌入文字,其将水印以编码形式嵌入,提取结果为字符串。该算法可抵抗一定程度的裁剪、遮挡、截屏、图片压缩等攻击,水印容量大,但不可抵抗缩放攻击。
请求结构
POST /v{version}/job/imagedwm HTTP/1.1
accept-encoding: gzip, deflate
x-bce-date: {utc-date-string}
connection: keep-alive
accept: */*
host: media.bj.baidubce.com
x-bce-request-id: {bce-request-id}
content-type: application/json
authorization: {bce-authorization-string}
请求头域
除公共头域外,无其它特殊头域。
请求参数
无
请求体
字段名称 | 字段类型 | 必要性 | 字段描述 | 可选值 | 默认值 |
---|---|---|---|---|---|
pipelineName | String | 必选 | 任务所属的队列名称 | - | - |
source | Object | 必选 | 输入图片信息集合(支持BOS、url两种方式,必选其一) | - | - |
+bucket | String | 可选 | 输入图片的BOS Bucket(用户必须有该bucket的读权限) | - | 队列中指定的输入bucket |
+key | String | 可选 | 输入图片的BOS Key | - | - |
+url | String | 可选 | 输入图片的url(支持http/https协议) | 字符数<1024 | - |
target | Object | 必选 | 输出配置 | - | - |
+bucket | String | 可选 | 输出图片的BOS Bucket(用户必须有该bucket的写权限) | - | 队列中指定的输出bucket |
+key | String | 可选 | 输出图片的BOS Key | - | - |
+format | String | 可选 | 输出图片的格式,默认使用BOS Key后缀作为输出格式 | bmp、jpg、jpeg、png、webp、tiff | - |
+quality | Integer | 可选 | 输出图片的压缩质量分数,越高画质越好,文件体积越大(压缩质量过低可能导致无法提取水印,建议搭配合适的嵌入强度使用) | 1 ~ 100 | 100 |
digitalWm | Object | 必选 | 嵌入水印信息集合(图片和文字必须二选一) | - | - |
+imageBucket | String | 可选 | 水印图片的BOS Bucket(用户必须有该bucket的读权限) | - | - |
+imageKey | String | 可选 | 水印图片的BOS Key | - | - |
+imageUrl | String | 可选 | 水印图片的url(支持http/https协议) | - | - |
+textContent | String | 可选 | 水印文字内容 | 1~100个字符,支持英文、数字及常用特殊字符 | - |
taskType | String | 必选 | 任务类型,嵌入任务必填embed | embed | - |
algorithmVersion | Integer | 可选 | 算法版本号,算法介绍见文档开头 | 0,1 | 0 |
strength | Double | 可选 | 嵌入强度,越高抗攻击性越强,对画质影响也越大 | 0 ~ 1 | 算法0默认为1.0,算法1默认为0.5 |
secretKey | String | 可选 | (仅算法1支持)密钥, 用于对水印信息加密。提取水印时,需提供与嵌入时一致的密钥才能正确提取出水印内容 | 1~16个字符,支持英文、数字及常用特殊字符 | 默认为用户生成唯一密钥用于加密(每个用户仅生成一次且不同用户密钥不同) |
响应头域
除公共头域外,无其它特殊头域。
响应参数
字段名称 | 字段类型 | 字段描述 |
---|---|---|
jobId | String | 系统生成的任务的唯一标识 |
请求示例
选择算法0嵌入图片水印,使用BOS输入输出,并设置输出图片质量、算法强度等参数。
POST /v3/job/imagedwm HTTP/1.1
accept-encoding: gzip, deflate
x-bce-date: 2023-11-08T21:21:21Z
host: media.bj.baidubce.com
accept: */*
connection: keep-alive
x-bce-request-id: 6bae5cb3-97d1-4b1a-b8b6-0ad577c1d481
content-type: application/json
authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2023-11-08T21:21:21Z/1800/host;x-bce-date/7e21c9cf1e4e2cc6921a407a388fe98df122c53b9f509043d841be76eb09a1f9
{
"pipelineName": "high_priority_pipe",
"source": {
"bucket": "input",
"key": "source.jpg"
},
"target": {
"bucket": "output",
"key": "source_embed.png",
"quality": 60
},
"digitalWm": {
"imageBucket": "input",
"imageKey": "wm.png"
},
"strength": 0.8,
"taskType": "embed",
"algorithmVersion": 0
}
选择算法1嵌入文字水印,使用url输入、BOS输出,并设置输出图片质量、算法强度等参数。
POST /v3/job/imagedwm HTTP/1.1
accept-encoding: gzip, deflate
x-bce-date: 2023-11-08T21:21:21Z
host: media.bj.baidubce.com
accept: */*
connection: keep-alive
x-bce-request-id: 6bae5cb3-97d1-4b1a-b8b6-0ad577c1d481
content-type: application/json
authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2023-11-08T21:21:21Z/1800/host;x-bce-date/7e21c9cf1e4e2cc6921a407a388fe98df122c53b9f509043d841be76eb09a1f9
{
"pipelineName": "high_priority_pipe",
"source": {
"url": "https://www.baidu.com/source.webp"
},
"target": {
"bucket": "output",
"key": "source_embed.jpg",
"quality": 90
},
"digitalWm": {
"textContent": "baidumcp"
},
"strength": 0.6,
"taskType": "embed",
"algorithmVersion": 1
}
响应示例
HTTP/1.1 200 OK
Transfer-Encoding: chunked
x-bce-request-id: d97c57d0-ca44-4d1c-bfeb-941a92440968
Cache-Control: no-cache
Server: BWS
Date: Wed, 08 Nov 2023 07:36:48 GMT
Content-Type: application/json;charset=UTF-8
{
"jobId": "job-pk7n403picat90kr"
}
查询图片数字水印嵌入任务
接口描述
用户通过该接口查询图片数字水印嵌入历史任务信息。
请求结构
GET /v{version}/job/imagedwm/{jobId} HTTP/1.1
accept-encoding: gzip, deflate
x-bce-date: {utc-date-string}
connection: keep-alive
accept: */*
host: media.bj.baidubce.com
x-bce-request-id: {bce-request-id}
content-type: application/json
authorization: {bce-authorization-string}
请求头域
除公共头域外,无其它特殊头域。
请求参数
字段名称 | 字段类型 | 必要性 | 字段描述 | 可选值 | 默认值 |
---|---|---|---|---|---|
jobId | String | 必选 | 系统生成的任务的唯一标识 | - | - |
请求体
无
响应头域
除公共头域外,无其它特殊头域。
响应参数
字段名称 | 字段类型 | 字段描述 |
---|---|---|
jobId | String | 系统生成的任务的唯一标识 |
pipelineName | String | 任务所属的队列名称 |
jobStatus | String | 任务状态(SUCCESS, FAILED) |
createTime | String | 任务创建时间 |
startTime | String | 任务开始处理时间 |
endTime | String | 任务结束时间 |
error | Object | 错误信息,任务失败时存在 |
+code | String | 错误码 |
+message | String | 错误信息 |
source | Object | 输入图片信息集合 |
+bucket | String | 输入图片的BOS Bucket |
+key | String | 输入图片的BOS Key |
+url | String | 输入图片的url |
target | Object | 输出配置 |
+bucket | String | 输出图片的BOS Bucket |
+key | String | 输出图片的BOS Key |
+format | String | 输出图片的格式 |
+quality | String | 输出图片的质量 |
digitalWm | Object | 嵌入水印信息集合 |
+imageBucket | String | 水印图片的BOS Bucket |
+imageKey | String | 水印图片的BOS Key |
+imageUrl | String | 水印图片的url |
+textContent | String | 水印文字内容 |
taskType | String | 任务类型 |
algorithmVersion | Integer | 算法版本号 |
strength | Double | 嵌入强度 |
output | Object | 嵌入结果信息 |
+imageBucket | String | 输出图片的BOS Bucket(任务成功时与target一致) |
+imageKey | String | 输出图片的BOS Key(任务成功时与target一致) |
taskType | String | 任务类型 |
请求示例
GET /v3/job/imagedwm/job-pk7n403picat90kr HTTP/1.1
accept-encoding: gzip, deflate
x-bce-date: 2023-11-08T21:21:21Z
host: media.bj.baidubce.com
accept: */*
connection: keep-alive
x-bce-request-id: 6bae5cb3-97d1-4b1a-b8b6-0ad577c1d481
content-type: application/json
authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2023-11-08T21:21:21Z/1800/host;x-bce-date/7e21c9cf1e4e2cc6921a407a388fe98df122c53b9f509043d841be76eb09a1f9
响应示例
HTTP/1.1 200 OKTransfer-Encoding: chunked
x-bce-request-id: d97c57d0-ca44-4d1c-bfeb-941a92440968
Cache-Control: no-cache
Server: BWS
Date: Wed, 08 Nov 2023 07:36:48 GMT
Content-Type: application/json;charset=UTF-8
{
"jobId": "job-pk7n403picat90kr",
"pipelineName": "high_priority_pipe",
"jobStatus": "SUCCESS",
"createTime": "2023-11-08T07:36:45Z",
"startTime": "2023-11-08T07:36:45Z",
"endTime": "2023-11-08T07:36:48Z",
"source": {
"bucket": "input",
"key": "source.jpg"
},
"target": {
"bucket": "output",
"key": "source_embed.png",
"quality": 60,
"format": "png"
},
"digitalWm": {
"imageBucket": "input",
"imageKey": "wm.png"
},
"taskType": "embed",
"algorithmVersion": 0,
"strength": 0.5,
"output": {
"imageBucket": "output",
"imageKey": "source_embed.png"
}
}