API documentation provided by Jeffrey,欢迎您提出宝贵的建议
GET / POST
multipart/form-data
格式image_file > image_url > image_base64
rectangles > markName > excludeKeywords > default
使用签名方式
协议(参数名称) | 是否必填 | 参数类型 | 备注 |
---|---|---|---|
appId | 使用签名方式时必须 | String | appId 为你的应用 id,由数字、大小写字母随机组合而成,总长度 16 位,通过注册账号获取 |
salt | 使用签名方式时必须 | Integer | salt 为盐值,由 8 位随机 int 类型的数字组合而成,注意生成随机数的第一位不要为 0 ,否则造成签名失败,例如 01234567 |
x-access-api-sign | 使用签名方式时必须 | String | 1. 该参数为头部信息,请在请求头中指定该参数,如未在请求头定义 x-access-api-sign 将视为使用 x-access-api-token 鉴权的方式接入2. 签名规则为 md5(appId + imageMd5 + salt + appSecret) 3. imageMd5 为请求图片的 md5 信息,不加任何编码,将图片转换为字节数组后进行计算,md5 校验计算完成后为 32 位小写 4. appSecret 为你的应用密钥,由数字、大小写字母、特殊字符组合而成,总长度 32 位,请注意,确保在请求参数以及网络传输过程中不携带你的密钥,仅在客户端生成签名时使用 5. 最终的 sign 为 32 位小写字符串 |
使用 token 方式
协议(参数名称) | 是否必须 | 参数类型 | 备注 |
---|---|---|---|
x-access-api-token | 使用 token 鉴权方式时必须 | String | 1. 该参数为头部信息,请在请求头中指定该参数,如未在请求头中定义 x-access-api-token 将视为使用 x-access-api-sign 签名的方式接入2. 使用 token 鉴权方式可方便、高效的接入服务但安全性较低,当您的 token 泄露后它人可使用您的 token 接入服务并可能造成财产损失,请妥善保管好您的 token 3. 获取或刷新 token 后的有效时间为 30 分钟(5 分钟平滑期),所以无需多次调用获取 token 接口,每位用户每日最多只能调用 100 次获取 token 接口 4. 在调用获取 token 接口前,请先 点击前往您的控制台 添加 IP 白名单,否则即使拥有合法的 token 也无法正常调用服务 5. 获取到的 token 为 32 位小写字符串 |
字段名称 | 类型 | 是否必填 | 默认 | 备注 |
---|---|---|---|---|
imageFile | File | 否,image_file / image_url / image_base64 必须提供一个 | 无 | 图片文件,仅支持格式为 image/png image/bmp image/jpeg 的图片,且大小不超过 4MB |
image/png image/bmp image/jpeg 的图片,且大小不超过 4MB | ||||
image/png image/bmp image/jpeg 的图片,且大小不超过 4MB,不建议采用 Base64 编码 | ||||
rectangles | Json | 否 | 无 | 矩形坐标,为空默认将识别到图中的文字水印信息作为矩形坐标,如提供该参数,请正确填写,如提供有误则请求不成功,明确指定该参数后 watermarkNames / excludeKeywords / offset 将无效且服务器不会识别出图片中的文字矩形区域,可提供多个矩形坐标,例如:[ |
watermarkNames | Json | 否 | 无 | 根据给定的水印名称去除识别到的图中的文字水印名称,该参数仅在不明确指定矩形坐标参数时生效,且该参数和 excludeKeywords 只能指定其中一个生效,参数可提供多个以下为一个完整的例子,其中包含的 value 属性为你需要排除的水印文字,rule 属性为排除规则,可选的值有 similar 、absolute 、default similar 表示根据距离编辑算法决定是否去除或排除文字水印,确认值为 75% absolute 表示将绝对根据给定的文字水印,输入需要完全一致才能进行去除或排除,确认值为 100% default 表示默认使用 similar 进行操作,如 rule 的值有误或留空默认也使用 default 属性{ |
excludeKeywords | Json | 否 | 无 | 排除图片中的水印文字,该功能仅在不明确指定矩形坐标参数时生效,且该参数和 markNames 只能指定其中一个以下为一个完整的例子,其中包含的 value 属性为你需要排除的水印文字,rule 属性为排除规则,可选的值有 similar 、absolute 、default similar 表示将根据距离编辑算法决定是否去除文字水印,确认值为 75% absolute 表示将绝对根据给定的文字水印,输入需要完全一致才能进行去除,确认值为 100% default 表示默认使用 similar 进行操作,如 rule 的值有误或留空默认也使用 default 属性{ |
offset | Json | 否 | 无 | 矩形偏移量,在识别到的文本矩形框额外缩小或放大矩形大小,仅能使用 +x + y +w +h -x -y -w -h 指定缩小还是放大偏移量,如识别出的文字矩形区域额外添加偏移量后造成矩形超出图像框架范围,则忽略 offset 参数重试并响应。以下为一个简单的例子:{ |
sync | Boolean | 否 | false | 是否异步处理,如设定为 true 则表示启用,请先设置好 callback 回掉接口 |
callback | String | sync 参数为 true 时必须 | 无 | 如 sync 显示的设定为了 true,将立即响应状态信息,处理包含数据的结果将发送给指定的 callback 回掉接口,如首次请求 callback 失败,服务器会重新尝试响应 1 次,请注意,即使没有成功发送消息至 callback 指定的服务器,也依然会扣除使用次数,处理失败情况除外,服务器校验响应是否成功取决于目标回掉接口是否返回 HTTP 状态码 200,所以在提交大量异步请求前,请先确认 callback 接口是否能正常接收响应 |
ocrOnly | Boolean | 否 | false | 是否仅识别图片中的文字水印矩形坐标等信息,默认为 false ,详情参考响应数据例子 |
show | Boolean | 否 | false | 是否标识出处理的矩形区域,默认为 false |
响应码 | 含义 | 备注 |
---|---|---|
200 | 请求成功,但处理不一定成功,具体看 data 对象中的 processStatus | 处理成功 |
304 | 自上次的请求以来本次响应未做任何修改 | 自上一次请求后,响应处于缓存期中,本次响应为缓存数据,在缓存期间不扣除使用次数 |
400 | 请求参数错误 | 检查是否少传了必要参数,或指定了错误的参数 |
401 | 认证失败 | 检查提供的签名参数,以及生成 sign 的方法 |
403 | 拒绝请求 | 服务器拒绝请求,可能是账户可使用次数不足 |
405 | 请求方法不被允许 | 检查请求方法 |
413 | 上传文件大小超出限制 | 请检查文件大小,最大 4 MB |
429 | 请求频率超出 QPS 限制(默认 QPS 为 2) | 请放缓请求速率 |
500 | 服务端系统出错 | 重试或联系管理员 |
响应码 | 含义 | 备注 |
---|---|---|
0 | 处理成功 | - |
52000 | 异步调用返回状态码 | 异步调用的请求将立即响应状态信息,处理包含数据的结果将发送给指定的 callback 回掉接口 |
52001 | 未处理 | 没有进行图片处理,原因可能是没有通过校验,例如上传的文件超出大小限制、非法请求、提供的参数有误等等,该响应码不会扣除账户使用次数 |
52002 | 未处理 | 由于没有明确或正确指定水印矩形坐标,且服务器无法识别到图片中有任何的文字水印矩形坐标将返回该状态码,不消耗使用次数 |
52003 | 请求超时 | 重试或联系管理员,不消耗使用次数 |
52004 | 服务端系统出错 | 重试或联系管理员,不消耗使用次数 |
52005 | 提供的偏移量参数不正确 | 出现该状态码表示服务器依然完成了对图片的去水印操作,但提供的偏移量参数未能生效,原因是对原始图片的坐标轴信息进行坐标偏移操作后,超出了原始图片的边框限制。消耗使用次数 |
52006 | 未进行水印去除操作 | 由于指定了参数 ocrOnly 为 true,所以服务器仅识别图片中的文字水印矩形坐标等信息,不对识别到的区域进行水印去除操作,仍扣除使用次数 |
字段 | 含义 |
---|---|
httpCode | 本次请求状态,具体参照响应码列表 |
httpMsg | 本次请求状态信息 |
returnType | 本次响应返回的数据类型 |
remainingUsage | 当前用户剩余可使用次数 |
allUsedCount | 账户总调用次数 |
longTermUsageCount | 账户长期可调用次数 |
limitedTermUsageCount | 账户限期可调用次数 |
limitedTermExpireTimes | 账户限期次数到期时间 |
location | 客户端请求发起 IP 地址 |
msgInnerReferer | 内部消息来源,成功时为空,失败时可根据该信息进行定位 |
data | 为一个对象,封装了本次请求的具体响应数据,包括去水印后的数据。在处理异步请求时返回的 data 对象不包含处理数据 |
processStatus | 本次处理状态码,具体参照响应码列表 |
processMsg | 本次处理状态信息 |
processLocation | 本次处理的矩形坐标,为一个 json list,list 中的每一项依次代表着 left、top、width、height,lineCount 为自动合并了多少行,watermark 为四个坐标轴框选的文字 |
processCount | 对本次请求上传图片的处理次数 |
url | 本次去水印后图片的 URL 地址,注意:响应的数据在服务器端仅保留 5 小时,平滑期为 5 分钟,超时自动销毁,在缓存期间内重复调用不扣除账户使用次数 |
以下内容为使用同步调用响应的结果示例,请求时未指定水印所在的矩形区域、未指定需要去除的水印内容,未指定需要排除的水印内容,未设置偏移量,未开启仅水印内容识别,未开启异步请求、未设置回调接口,开启了处理区域部分显示(处理部分会显示绿色框框)
{
"httpCode": 200,
"httpMsg": "SUCCESS::调用成功",
"returnType": "json",
"remainingUsage": 411,
"longTermUsageCount": 20,
"limitedTermUsageCount": 391,
"limitedTermExpireTimes": "2024-01-10T17:49:45",
"allUsedCount": 9,
"data": {
"processStatus": 0,
"processCount": 2,
"processMsg": "SUCCESS::处理成功",
"processLocation": [
{
"x": 241,
"y": 624,
"w": 595,
"h": 1335,
"lineCount": 10,
"word": "坚持党的领导 坚持人民至上 坚持理论创新 坚持独立自主 坚持中国道路 坚持胸怀天下 坚持开拓创新 坚持敢于斗争 坚持统一战线 坚持自我革命"
},
{
"x": 305,
"y": 2256,
"w": 495,
"h": 45,
"lineCount": 2,
"word": "VA 抖音号*******"
}
],
"url": "https://www.processimage.cn/watermark/targetImages/054cd3de-471d-4379-be88-67d531b3244f.jpeg"
},
"encryptedInfo": {
"sign": "fc168bf32fcd56b3b1e71031209e7e83",
"imageUniqueIdentification": "20eecffbd807d6508ac7be5eb083732e"
}
}
以下为异步调用成功的响应,相关处理结果会响应至给定的回调接口
{
"httpCode": 200,
"httpMsg": "SUCCESS::调用成功",
"returnType": "json",
"remainingUsage": 411,
"longTermUsageCount": 20,
"limitedTermUsageCount": 391,
"limitedTermExpireTimes": "2024-01-10T17:49:45",
"allUsedCount": 9,
"data": {
"processStatus": 52000,
"processMsg": "WAITING::异步请求"
},
"encryptedInfo": {
"sign": "3cf74091cd396bdb3a37ff54c8dea6d5",
"imageUniqueIdentification": "20eecffbd807d6508ac7be5eb083732e"
}
}
以下为仅识别文字水印矩形信息,不对水印做去除处理
x
{
"httpCode": 200,
"httpMsg": "SUCCESS::调用成功",
"returnType": "json",
"remainingUsage": 411,
"longTermUsageCount": 20,
"limitedTermUsageCount": 391,
"limitedTermExpireTimes": "2024-01-10T17:49:45",
"allUsedCount": 9,
"data": {
"processStatus": 0,
"processCount": 2,
"processMsg": "SUCCESS::处理成功",
"processLocation": [
{
"x": 241,
"y": 624,
"w": 595,
"h": 1335,
"lineCount": 10,
"word": "坚持党的领导 坚持人民至上 坚持理论创新 坚持独立自主 坚持中国道路 坚持胸怀天下 坚持开拓创新 坚持敢于斗争 坚持统一战线 坚持自我革命"
},
{
"x": 305,
"y": 2256,
"w": 495,
"h": 45,
"lineCount": 2,
"word": "VA 抖音号*******"
}
]
},
"encryptedInfo": {
"sign": "fc168bf32fcd56b3b1e71031209e7e83",
"imageUniqueIdentification": "20eecffbd807d6508ac7be5eb083732e"
}
}
以下为调用缓存结果返回数据的例子
xxxxxxxxxx
{
"httpCode": 304,
"httpMsg": "CACHE::本次响应为缓存数据,未作任何修改",
"returnType": "json",
"remainingUsage": 411,
"longTermUsageCount": 20,
"limitedTermUsageCount": 391,
"limitedTermExpireTimes": "2024-01-10T17:49:45",
"allUsedCount": 9,
"data": {
"processStatus": 0,
"processCount": 1,
"processMsg": "SUCCESS::处理成功",
"processLocation": [
{
"x": 391,
"y": 1838,
"w": 349,
"h": 45,
"lineCount": 1,
"word": "抖音号:rc****16"
}
],
"url": "https://www.processimage.cn/watermark/targetImages/a2118e82-861b-44c0-9108-db68b6273275.jpeg"
},
"encryptedInfo": {
"sign": "d32fff132edc38b57e91b3f79a6814bd",
"imageUniqueIdentification": "021999c1d77e5e9d9a81c12bd665ba0d"
}
}
以下为调用失败返回的数据例子
{
"httpCode": 401,
"httpMsg": "FAILED::签名错误",
"returnType": "json",
"msgInnerReferer": "ExceptionHandler[SignatureFailedException.class]",
"location": "112.202.136.123",
"data": {
"processStatus": 52001,
"processMsg": "UNHANDLED::因其他问题导致未处理"
}
}