证件照生成
能力介绍
接入API
接入Agent
接入MCP
接入CLI
接入HermesAgent
接口说明
证件照生成接口采用最新AI图像算法,轻松将您拍摄的素描水彩等绘画作品转化为专业级绘画电子档,高度还原原图笔触细节。
HTTP方法
调用方式(异步调用仅支持转 Word/Excel/PDF)
- 当图片或页数较多(建议 > 5 页)时,推荐使用异步方式调用,以避免同步请求因算法处理耗时过长而超时。
- 同步接口返回结果为 Base64 编码数据;异步接口返回文件/图片/压缩包的下载 URL。
Header设置
请求参数
请求示例
1from time import time
2import requests
3import json
4import uuid
5import hashlib
6
7
8def get_http_client():
9 return requests.session()
10
11
12def create_demo_param(client_id, client_secret):
13 business = "vision"
14 sign_method = "SHA3-256"
15 sign_nonce = uuid.uuid4().hex
16 timestamp = int(time() * 1000)
17 signature = get_signature(client_id, client_secret, business, sign_method, sign_nonce, timestamp)
18 req_id = uuid.uuid4().hex
19
20
21 param = {
22 "dataUrl": "https://example.jpg",
23 "dataType": "image",
24 "serviceOption": "scan",
25 "inputConfigs": '{"function_option": "id_photo"}',
26 "outputConfigs": '{"need_return_image":"True"}',
27 "reqId": req_id,
28 "clientId": client_id,
29 "signMethod": sign_method,
30 "signNonce": sign_nonce,
31 "timestamp": timestamp,
32 "signature": signature
33 }
34 return param
35
36
37def get_signature(client_id, client_secret, business, sign_method, sign_nonce, timestamp):
38 raw_str = f"{client_id}_{business}_{sign_method}_{sign_nonce}_{timestamp}_{client_secret}"
39 utf8_bytes = raw_str.encode("utf-8")
40 # 根据sign_method选择不同的摘要算法
41 if sign_method.lower() == "sha256":
42 digest = hashlib.sha256(utf8_bytes).hexdigest()
43 elif sign_method.lower() == "sha1":
44 digest = hashlib.sha1(utf8_bytes).hexdigest()
45 elif sign_method.lower() == "md5":
46 digest = hashlib.md5(utf8_bytes).hexdigest()
47 elif sign_method.lower() in ["sha3-256", "sha3_256"]:
48 digest = hashlib.sha3_256(utf8_bytes).hexdigest()
49 else:
50 raise ValueError("Unsupported sign method")
51 # 将摘要转换为小写十六进制字符串
52 sign = digest.lower()
53 return sign
54
55
56def main():
57 client_id = "******"
58 client_secret = "******"
59 http_client = get_http_client()
60 param = create_demo_param(client_id, client_secret)
61 req_id = uuid.uuid4().hex
62 url = "https://scan-business.quark.cn/vision"
63 headers = {
64 "Content-Type": "application/json",
65 }
66 response = http_client.post(url, json=param, headers=headers)
67 if response.status_code == 200:
68 body = response.json()
69 code = body.get("code")
70 print(body)
71 print("ocr request result:", code)
72 else:
73 print("http request error")
74
75
76if __name__ == "__main__":
77 main()图片格式要求
为了确保图片OCR识别质量,会对图片格式、尺寸、大小做限制:
- 目前支持的格式为:PNG、JPG、JPEG、BMP、GIF、TIFF、WebP,建议使用JPG/JPEG格式;
- 图片长宽需要大于15像素、小于8192像素,长宽比需要小于50;
- 图片二进制文件不能超过10MB,建议使用1.5MB的图片进行识别;
结果说明
数据结构
1{
2 "ImageInfo": [
3 {
4 "Angle": 0,
5 "Height": 3071,
6 "Width": 1315,
7 "ImageBase64": "/9j/4AAQSkZJR..."
8 }
9 ]
10}字段说明
文字结果
结果示例
1{
2 "ImageInfo": [
3 {
4 "Angle": 0,
5 "Height": 3071,
6 "Width": 1315,
7 "ImageBase64": "/9j/4AAQSkZJR..."
8 }
9 ]
10}返回码说明
签名机制
以下示例以签名算法SHA3-256为例,其它签名算法需要做相应替换
对 clientId、business、signMethod、signNonce、timestamp、clientSecret 几个字段按顺序以下划线的方式拼接,其中business固定设置为vision,以上述示例的参数得到如下待签名字符串:
1test_vision_SHA3-256_091e00880df24ca0965f9416931b253c_1694152918888_6zGXp1QZ6GcLWoEn通过 SHA3-256 算法计算上述待签名字符串,具体步骤如下:
- 获取待签名字符串的 UTF8 编码格式字节数组;
- 对字节数组进行 SHA3-256 算法计算得到签名字节数组;
- 对 SHA3-256 算法计算得到的数组,进行16进制编码,并转成小写格式,得到签名字符串
上述字符串得到的结果为:
1db17c4fd487874621a151ad3aed8d189d91042847fbf832994a4b54159c96d6b