图片数字水印提取接口
更新时间:2024-05-29
创建图片数字水印提取任务
接口描述
用户通过该接口从可能嵌入了数字水印的图片中提取水印。图片数字水印服务目前支持两种算法,需选择与嵌入时相同的算法才能够正确提取出水印。
算法0(二值图片嵌入算法):支持嵌入图片和文字,任何水印内容都将以二值图片形式嵌入到载体图片中(文字会自动转换为图片)。因此,无论嵌入图片还是文字,提取水印结果始终为图片,需要人工查看提取结果图片是否存在水印。该算法能够抵抗一定程度的缩放、裁剪、遮挡、截屏等攻击,但抗图片压缩能力较弱,水印容量相对较小。
算法1(文字编码嵌入算法):仅支持嵌入文字,其将水印以编码形式嵌入,提取结果为字符串。该算法可抵抗一定程度的裁剪、遮挡、截屏、图片压缩等攻击,水印容量大,但不可抵抗缩放攻击。
注:算法0提取结果固定为图片,必须在target字段中配置输出地址。算法1提取结果为字符串,无需配置target。
请求结构
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 | 必选 | 输入图片信息集合 | - | - |
+bucket | String | 可选 | 输入图片的BOS Bucket(用户必须有该bucket的读权限) | - | 队列中指定的输入bucket |
+key | String | 可选 | 输入图片的BOS Key | - | - |
+url | String | 可选 | 输入图片的url(支持http/https协议) | - | - |
target | Object | 算法0必选 | 输出配置(仅限算法0) | - | - |
+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 |
taskType | String | 必选 | 任务类型,提取任务必填extract | extract | - |
algorithmVersion | Integer | 可选 | 算法版本号 | 0,1 | 0 |
secretKey | String | 可选 | (仅算法1支持)密钥, 用于对水印信息解密,需提供与嵌入时一致的密钥才能正确提取出水印内容 | 1~16个字符,支持英文、数字及常用特殊字符 | 默认使用内置用户级密钥解密,如嵌入时未配置密钥,提取也无需配置 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
字段名称 | 字段类型 | 字段描述 |
---|---|---|
jobId | String | 系统生成的任务的唯一标识 |
请求示例
从使用算法0嵌入过水印的图片中提取水印。
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_embed.png"
},
"target": {
"bucket": "output",
"key": "source_embed_extract.jpg",
"quality": 80
},
"taskType": "extract",
"algorithmVersion": 0
}
从使用算法1嵌入过水印的图片中提取水印。
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_embed.png"
},
"taskType": "extract",
"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 | 输出配置(仅限算法0) |
+bucket | String | 输出图片的BOS Bucket |
+key | String | 输出图片的BOS Key |
+format | String | 输出图片的格式 |
+quality | Integer | 输出图片的质量 |
taskType | String | 任务类型 |
algorithmVersion | Integer | 算法版本号 |
output | Object | 提取结果信息 |
+imageBucket | String | 提取结果图片的BOS Bucket(限算法0) |
+imageKey | String | 提取结果图片的BOS Key(限算法0) |
+extractedText | String | 提取结果文字(限算法1,若未提取出水印无该字段) |
请求示例
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
响应示例
使用算法0的提取任务结果。
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",
"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_embed.png"
},
"target": {
"bucket": "output",
"key": "source_embed_extract.jpg",
"format": "jpg",
"quality": 80
},
"taskType": "extract",
"algorithmVersion": 0,
"output": {
"imageBucket": "output",
"imageKey": "source_embed_extract.jpg"
}
}
使用算法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",
"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_embed.png"
},
"taskType": "extract",
"algorithmVersion": 1,
"output": {
"extractedText": "baidumcp"
}
}