智能识别并翻译图片中的文字,生成指定语言的图片,支持 26 种目标语言。自动保留原图的字体、字号、文字颜色和排版,最大程度还原原图样式。
接口返回的结果图片链接一般有效期为 1 小时,请及时下载存储。
鉴权
每个 API 请求都必须在请求头中携带你的 API Key。请按当前文档中的请求方式和参数说明,将其作为 X-API-KEY 请求头传入。
X-API-KEY: YOUR_API_KEY 创建图片翻译任务
/api/tasks/visual/image-translator 请求参数
image_url string 可选 原图下载地址。与 image_file 至少提供一个;同时传入时优先使用 image_file。
target_language string 必填 目标语言,使用以下语言代码:
AR:阿拉伯语BG:保加利亚语CSY:捷克语DEU:德语ENG:英语ESP:西班牙语FRA:法语HUN:匈牙利语ID:印度尼西亚语ITA:意大利语JPN:日语JW:爪哇语KOR:韩语MS:马来语MY:缅甸语NLD:荷兰语PLK:波兰语ROM:罗马尼亚语RUS:俄语TH:泰语TRK:土耳其语VIN:越南语TL:他加禄语(菲律宾)PTB:巴西葡萄牙语CHT:繁体中文CHS:简体中文
aspect_ratio string 可选 输出图片宽高比。不传时自动设置;支持 1:1、2:3、3:2、4:3、3:4、16:9、9:16、9:21。
quality string 可选 输出质量,可选:
1k1.5k2k(默认)
sync uint 可选 调用方式,可选:
0:异步(默认)。创建任务后返回 task_id,再轮询查询结果。1:同步。等待翻译完成后直接返回结果。
返回参数
status integer 响应状态码。200 表示请求成功,不代表图片翻译成功。详见 状态码说明。
message string 返回的信息说明。处理失败时请携带错误信息和 task_id 联系支持人员。
data.task_id string 任务 ID,用于查询图片翻译结果。
status integer 响应状态码。200 表示请求成功,不代表图片翻译成功。详见 状态码说明。
message string 返回的信息说明。处理失败时请携带错误信息和 task_id 联系支持人员。
data.task_id string 任务 ID,用于查询图片翻译结果。
data.image_url string 翻译结果图片下载地址或 base64 数据。结果链接一般有效期为 1 小时。
data.state integer 任务处理状态,成功或失败时停止轮询。详见 状态码说明。
0:排队中。1:成功。2:准备中。3:等待中。4:处理中。< 0:失败。-8:处理超时,最长 180 秒。-7:无效图片文件。-5:图片超过 10MB。-3:服务器下载图片失败。-2:翻译完成,但上传结果失败。-1:图片翻译失败。
data.progress integer 任务处理进度,范围为 0~100。请结合 data.state 判断翻译是否成功。
data.created_at integer 任务创建时间戳。
data.processed_at integer 任务开始处理时间戳。
data.completed_at integer 任务完成时间戳。
data.state_detail string 任务状态详情。
data.return_type integer 结果返回方式。
data.type integer 接口返回的结果方式字段。
data.time_elapsed number 任务处理耗时。
查询图片翻译结果
异步请求建议每 1 秒 轮询一次结果,本接口最大轮询时长为 180 秒;累计轮询超过该时长仍未返回结果,即可视为超时失败。
/api/tasks/visual/image-translator/{task_id} 路径参数
task_id string 必填 任务 ID,用于查询图片翻译结果。
返回参数
status integer 响应状态码。200 表示请求成功,不代表图片翻译成功。详见 状态码说明。
message string 返回的信息说明。处理失败时请携带错误信息和 task_id 联系支持人员。
data.task_id string 任务 ID,用于查询图片翻译结果。
data.image_url string 翻译结果图片下载地址或 base64 数据。结果链接一般有效期为 1 小时。
data.state integer 任务处理状态,成功或失败时停止轮询。详见 状态码说明。
0:排队中。1:成功。2:准备中。3:等待中。4:处理中。< 0:失败。-8:处理超时,最长 180 秒。-7:无效图片文件。-5:图片超过 10MB。-3:服务器下载图片失败。-2:翻译完成,但上传结果失败。-1:图片翻译失败。
data.progress integer 任务处理进度,范围为 0~100。请结合 data.state 判断翻译是否成功。
data.created_at integer 任务创建时间戳。
data.processed_at integer 任务开始处理时间戳。
data.completed_at integer 任务完成时间戳。
data.state_detail string 任务状态详情。
data.return_type integer 结果返回方式。
data.time_elapsed string 任务处理耗时。
data.cost number 接口返回的费用值。
data.use_point integer 本次任务消耗的算粒。每次成功调用消耗 5 算粒。
使用规范与限制
-
接口返回的结果图片链接一般有效期为 1 小时,请及时下载存储。
-
HTTP status 为 200 仅表示请求成功;data.state = 1 才表示翻译成功,data.state < 0 表示失败。成功或失败后均应停止轮询。
-
URL 作为参数传递时请遵守 URL 编码规范。下载结果时请保留完整签名参数,不要将 & 错误转义。
-
图片下载地址支持 HTTP 和 OSS 协议,最长 512 个字符,下载超时 20 秒。图片大小以服务端接收到的文件为准。
-
处理通常需要 1~2 分钟,耗时受图片大小影响。异步轮询间隔建议 1 秒,累计不超过 180 秒。
-
默认 QPS 为 2;如需提高限制,请联系商务。每次成功调用消耗 5 算粒。
-
上传图片需符合以下格式、分辨率和大小限制。
格式 大小 分辨率 JPEG, JPG, PNG, WebP 不超过 10MB ≤ 6000 × 6000 px
# 图片翻译API
智能识别并翻译图片中的文字,生成指定语言的图片,支持 26 种目标语言。自动保留原图的字体、字号、文字颜色和排版,最大程度还原原图样式。
> 接口返回的结果图片链接一般有效期为 1 小时,请及时下载存储。
## 接口域名(Base URL)
https://techsz.aoscdn.com
## 鉴权
每个请求都必须在请求头中携带 X-API-KEY。
```http
X-API-KEY: YOUR_API_KEY
```
[获取或管理 API Key](https://picwish.cn/my-account?subRoute=api-key)
## 调用方式
sync=0:异步(默认),创建任务后轮询结果。sync=1:同步,等待处理完成并直接返回结果。
## 原图
原图下载地址。与 image_file 至少提供一个;同时传入时优先使用 image_file。
原图文件(二进制)。与 image_url 至少提供一个;同时传入时优先使用 image_file。
## 接口列表
| 用途 | 请求方式 | 路径 |
| --- | --- | --- |
| 创建图片翻译任务 | POST | /api/tasks/visual/image-translator |
| 查询图片翻译结果 | GET | /api/tasks/visual/image-translator/{task_id} |
## 创建图片翻译任务
POST /api/tasks/visual/image-translator
Content-Type: `multipart/form-data`
### 请求参数
| 参数 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| image_url | string | 二选一必填 | 原图下载地址。与 image_file 至少提供一个;同时传入时优先使用 image_file。 |
| image_file | file | 二选一必填 | 原图文件(二进制)。与 image_url 至少提供一个;同时传入时优先使用 image_file。 |
| target_language | string | 必填 | 目标语言,使用以下语言代码:<br>`AR`:阿拉伯语<br>`BG`:保加利亚语<br>`CSY`:捷克语<br>`DEU`:德语<br>`ENG`:英语<br>`ESP`:西班牙语<br>`FRA`:法语<br>`HUN`:匈牙利语<br>`ID`:印度尼西亚语<br>`ITA`:意大利语<br>`JPN`:日语<br>`JW`:爪哇语<br>`KOR`:韩语<br>`MS`:马来语<br>`MY`:缅甸语<br>`NLD`:荷兰语<br>`PLK`:波兰语<br>`ROM`:罗马尼亚语<br>`RUS`:俄语<br>`TH`:泰语<br>`TRK`:土耳其语<br>`VIN`:越南语<br>`TL`:他加禄语(菲律宾)<br>`PTB`:巴西葡萄牙语<br>`CHT`:繁体中文<br>`CHS`:简体中文 |
| aspect_ratio | string | 可选 | 输出图片宽高比。不传时自动设置;支持 1:1、2:3、3:2、4:3、3:4、16:9、9:16、9:21。 |
| quality | string | 可选 | 输出质量,可选:<br>`1k`<br>`1.5k`<br>`2k`(默认) |
| sync | uint | 可选 | 调用方式,可选:<br>`0`:异步(默认)。创建任务后返回 task_id,再轮询查询结果。<br>`1`:同步。等待翻译完成后直接返回结果。 |
### 异步返回参数
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| status | integer | 响应状态码。200 表示请求成功,不代表图片翻译成功。 |
| message | string | 返回的信息说明。处理失败时请携带错误信息和 task_id 联系支持人员。 |
| data.task_id | string | 任务 ID,用于查询图片翻译结果。 |
### 同步返回参数
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| status | integer | 响应状态码。200 表示请求成功,不代表图片翻译成功。 |
| message | string | 返回的信息说明。处理失败时请携带错误信息和 task_id 联系支持人员。 |
| data.task_id | string | 任务 ID,用于查询图片翻译结果。 |
| data.image_url | string | 翻译结果图片下载地址或 base64 数据。结果链接一般有效期为 1 小时。 |
| data.state | integer | 任务处理状态。成功或失败时停止轮询。<br>`0`:排队中。<br>`1`:成功。<br>`2`:准备中。<br>`3`:等待中。<br>`4`:处理中。<br>`< 0`:失败。<br>`-8`:处理超时,最长 180 秒。<br>`-7`:无效图片文件。<br>`-5`:图片超过 10MB。<br>`-3`:服务器下载图片失败。<br>`-2`:翻译完成,但上传结果失败。<br>`-1`:图片翻译失败。 |
| data.progress | integer | 任务处理进度,范围为 0~100。请结合 data.state 判断翻译是否成功。 |
| data.created_at | integer | 任务创建时间戳。 |
| data.processed_at | integer | 任务开始处理时间戳。 |
| data.completed_at | integer | 任务完成时间戳。 |
| data.state_detail | string | 任务状态详情。 |
| data.return_type | integer | 结果返回方式。 |
| data.type | integer | 接口返回的结果方式字段。 |
| data.time_elapsed | number | 任务处理耗时。 |
### 异步请求:图片 URL
```bash
curl 'https://techsz.aoscdn.com/api/tasks/visual/image-translator' \
-H 'X-API-KEY: YOUR_API_KEY' \
-F 'sync=0' \
-F 'target_language=ENG' \
-F 'quality=2k' \
-F 'image_url=YOUR_IMAGE_URL'
```
### 异步请求:本地文件
```bash
curl 'https://techsz.aoscdn.com/api/tasks/visual/image-translator' \
-H 'X-API-KEY: YOUR_API_KEY' \
-F 'sync=0' \
-F 'target_language=ENG' \
-F 'quality=2k' \
-F 'image_file=@/path/to/image.jpg'
```
创建成功响应:
```json
{
"status": 200,
"message": "ok",
"data": {
"task_id": "94806a3f-1173-4afb-9bcc-3ff19c0981f4"
}
}
```
### 同步请求:图片 URL
```bash
curl 'https://techsz.aoscdn.com/api/tasks/visual/image-translator' \
-H 'X-API-KEY: YOUR_API_KEY' \
-F 'sync=1' \
-F 'target_language=ENG' \
-F 'quality=2k' \
-F 'image_url=YOUR_IMAGE_URL'
```
### 同步请求:本地文件
```bash
curl 'https://techsz.aoscdn.com/api/tasks/visual/image-translator' \
-H 'X-API-KEY: YOUR_API_KEY' \
-F 'sync=1' \
-F 'target_language=ENG' \
-F 'quality=2k' \
-F 'image_file=@/path/to/image.jpg'
```
同步成功响应(结果字段为 image_url):
```json
{
"status": 200,
"data": {
"task_id": "94806a3f-1173-4afb-9bcc-3ff19c0981f4",
"created_at": 1789541552,
"processed_at": 1789541552,
"completed_at": 1789541563,
"progress": 100,
"state": 1,
"state_detail": "Complete",
"image_url": "YOUR_RESULT_IMAGE_URL",
"return_type": 1,
"time_elapsed": 0
}
}
```
## 查询图片翻译结果
异步请求建议每 **1 秒** 轮询一次结果,本接口最大轮询时长为 **180 秒**;累计轮询超过该时长仍未返回结果,即可视为超时失败。
GET /api/tasks/visual/image-translator/{task_id}
### 路径参数
| 参数 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| task_id | string | 必填 | 任务 ID,用于查询图片翻译结果。 |
### 返回参数
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| status | integer | 响应状态码。200 表示请求成功,不代表图片翻译成功。 |
| message | string | 返回的信息说明。处理失败时请携带错误信息和 task_id 联系支持人员。 |
| data.task_id | string | 任务 ID,用于查询图片翻译结果。 |
| data.image_url | string | 翻译结果图片下载地址或 base64 数据。结果链接一般有效期为 1 小时。 |
| data.state | integer | 任务处理状态。成功或失败时停止轮询。<br>`0`:排队中。<br>`1`:成功。<br>`2`:准备中。<br>`3`:等待中。<br>`4`:处理中。<br>`< 0`:失败。<br>`-8`:处理超时,最长 180 秒。<br>`-7`:无效图片文件。<br>`-5`:图片超过 10MB。<br>`-3`:服务器下载图片失败。<br>`-2`:翻译完成,但上传结果失败。<br>`-1`:图片翻译失败。 |
| data.progress | integer | 任务处理进度,范围为 0~100。请结合 data.state 判断翻译是否成功。 |
| data.created_at | integer | 任务创建时间戳。 |
| data.processed_at | integer | 任务开始处理时间戳。 |
| data.completed_at | integer | 任务完成时间戳。 |
| data.state_detail | string | 任务状态详情。 |
| data.return_type | integer | 结果返回方式。 |
| data.time_elapsed | string | 任务处理耗时。 |
| data.cost | number | 接口返回的费用值。 |
| data.use_point | integer | 本次任务消耗的算粒。每次成功调用消耗 5 算粒。 |
### cURL
```bash
curl 'https://techsz.aoscdn.com/api/tasks/visual/image-translator/{task_id}' \
-H 'X-API-KEY: YOUR_API_KEY'
```
处理中响应:
```json
{
"status": 200,
"message": "success",
"data": {
"progress": 21,
"state": 4
}
}
```
异步完成响应(结果字段为 image_url):
```json
{
"status": 200,
"data": {
"task_id": "94806a3f-1173-4afb-9bcc-3ff19c0981f4",
"created_at": 1789541552,
"processed_at": 1789541552,
"completed_at": 1789541563,
"progress": 100,
"state": 1,
"state_detail": "Complete",
"image_url": "YOUR_RESULT_IMAGE_URL",
"return_type": 2,
"cost": 0,
"use_point": 5
}
}
```
处理失败响应:
```json
{
"status": 200,
"message": "success",
"data": {
"task_id": "94806a3f-1173-4afb-9bcc-3ff19c0981f4",
"progress": 0,
"state": -1
}
}
```
请求失败响应:
```json
{
"status": 401,
"message": "Invalid API key"
}
```
## 推荐异步流程
1. POST 创建任务,提供 image_url 或 image_file,以及 target_language,设置 sync=0。
2. 从响应读取 data.task_id。
3. 每 1 秒 GET 查询结果,累计轮询不超过 180 秒。
4. data.state=1 时读取 data.image_url 并停止轮询;data.state<0 时记录错误并停止轮询。
5. 在链接失效前下载并存储结果图片。
## 使用规范与限制
- 接口返回的结果图片链接一般有效期为 1 小时,请及时下载存储。
- HTTP status 为 200 仅表示请求成功;data.state = 1 才表示翻译成功,data.state < 0 表示失败。成功或失败后均应停止轮询。
- URL 作为参数传递时请遵守 URL 编码规范。下载结果时请保留完整签名参数,不要将 & 错误转义。
- 图片下载地址支持 HTTP 和 OSS 协议,最长 512 个字符,下载超时 20 秒。图片大小以服务端接收到的文件为准。
- 处理通常需要 1~2 分钟,耗时受图片大小影响。异步轮询间隔建议 1 秒,累计不超过 180 秒。
- 默认 QPS 为 2;如需提高限制,请联系商务。每次成功调用消耗 5 算粒。
- 上传图片需符合以下格式、分辨率和大小限制。
| 格式 | 大小 | 分辨率 |
| --- | --- | --- |
| JPEG, JPG, PNG, WebP | 不超过 10MB | ≤ 6000 × 6000 px |
## 状态码
任务是否成功,需要结合 HTTP 响应状态码(`status`)和任务状态码(`data.state`)共同判断。
### HTTP 响应状态码
| 状态码 | 说明 |
| --- | --- |
| 200 | 请求成功。 |
| 400 | 客户端参数传递错误。请检查参数是否缺失或值是否正确。 |
| 401 | 认证失败。请检查 X-API-KEY 是否正确或服务是否开通。 |
| 404 | 请求的 URL 或资源不存在。请检查 URL 或 task_id 是否正确。 |
| 413 | 上传的文件超出大小限制。请参见各服务的最大文件限制。 |
| 429 | 请求频率超出 QPS 限制(默认 QPS 为 2)。请放缓请求速率,或联系商务提升 QPS。 |
| 500 | 服务端异常。请反馈给商务或技术对接人员。 |
### 任务状态码(data.state)
1 = 成功;大于 1 = 处理中;小于 0 = 失败。
| 状态码 | 说明 |
| --- | --- |
| -17 | 处理失败,非法提示词。 |
| -16 | 处理失败,使用第三方检测发现违规。 |
| -15 | 处理失败,资源不足。 |
| -14 | 处理失败,输入图片内容不符合要求。 |
| -13 | 处理失败,任务异常被取消。 |
| -11 | 处理失败,结果为空。 |
| -10 | 处理失败,内部检测非法。 |
| -9 | 处理失败,内部程序循环处理失败。 |
| -8 | 处理超时,最长处理时间 180 秒。 |
| -7 | 无效图片文件(如图片损坏、格式不对等)。 |
| -5 | image_url 图片超出大小限制(10MB)。 |
| -3 | 服务器下载图片文件失败,请检查图片 URL 是否可用。 |
| -2 | 处理完成,但上传 OSS 失败。 |
| -1 | 处理失败。 |
| 0 | 排队中,任务正在队列中等待。 |
| 1 | 完成,处理成功。 |
| 2 | 准备中。 |
| 3 | 等待中。 |
| 4 | 处理中,正在进行。 |
| 5 | 内部发布处理中。 |
| 6 | 处理中,内部循环处理中。 |