Skip to main content

一、访问控制

登录象寄官网 www.xiangjifanyi.com/home ,手机号注册账户后,即可获取:

  1. 个人密钥(UserKey)
  2. 图⽚翻译服务标识码(ImgTransKey)
    • 图片翻译中目前支持的文本翻译引擎有:
      • 阿里云、百度、Google、Papago、DeepL
  3. 文本翻译服务标识码(TextTransKey)
  4. 一键抠图服务标识码(ImgMattingKey)
  5. 视频翻译服务标识码(VideoTransKey)

二、图片 URL 请求图片翻译 API

1. 访问接口

2. 请求参数

字段名称是否必选类型示例值描述
ActionStringGetImageTranslate服务类型,GetImageTranslate 指“图⽚翻译”服务
SourceLanguageStringCHS来源语⾔,支持中(CHS/CHT)、英(ENG)、日(JPN)
TargetLanguageStringKOR目标语言,参考[语⾔列表]
UrlStringhttps://img.xx.com/O107064055.jpg图⽚地址,注 :文中 url 参数在传递时需要进行 urlencode
ImgTransKeyString参照[访问控制]图⽚翻译服务标识码
CommitTimeString1653229753秒级时间戳
SignString044a0bdea4128bb46aa59214ca821d6b签名, 签名⽅法: md5(CommitTime + "_" + UserKey + "_" + ImgTransKey) 小写
NeedWatermarkInteger0(非必需字段)是否添加水印,1=添加,0=不添加,默认为 1。需在 Web 端配置水印模板,否则不添加
NeedRmUrlInteger1(非必需字段)是否返回去文字图片链接。1=返回去文字图片链接,其它或无此字段,则不返回去文字图片链接
QosStringLowLatency(非必需字段)翻译速度与翻译质量的偏好选项。LowLatency=偏好速度而牺牲质量 ,BestQuality=偏好图片翻译的质量
EngineTypeInteger5文本翻译引擎,选填。默认与“图片翻译服务标识码”保持一致,当前仅当“图片翻译服务标识码”为“阿里云图片翻译服务标识码”时,接受 EngineType=5 为 ChatGPT 翻译,其他无效

NeedWatermark 设置为 1,则需要在网站账户后台配置好水印设置。

语言列表: AR:阿拉伯语, BG:保加利亚语, CHS:中文(简体), CHT:中文(繁體), CSY:捷克语, DEU:德语, ENG:英语, ESP:西班牙语, FRA:法语, HUN:匈牙利语, ID:印尼语, ITA:意大利语, JPN:日本语, JW:爪哇语, KOR:韩国语, MS:马来语, MY:缅甸语, NLD:荷兰语, PLK:波兰语, PTB:葡萄牙语(巴西), ROM:罗马尼亚语, RUS:俄语, TH:泰语, TL:他加禄语(菲律宾), TRK:土耳其语, VIN:越南语 等(语种较多,仅列出较常用语种,如需更多语种可联系客服)

3. 返回参数

字段名称类型示例值描述
CodeInteger200状态码(详细列表见文末),200 代表正常
MessageStringok状态码的明文含义,正常
RequestIdString4f93f79edff764a7请求的唯一 id
DataJson返回数据的 json 内容
-- UrlStringhttp://i.tosoiot.com/r/5b135a6003a3075d/f-xxxx.jpg翻译后的目标图片地址(图片地址的默认有效期为 80 天,如需长时存储请联系客服)
-- SsUrlStringhttps://i.tosoiot.com/r/5b135a6003a3075d/f-xxxx.jpg翻译后的目标图片 https 地址
-- RmUrlStringhttp://i.tosoiot.com/r/5b135a6003a3075d/ixx-xx.jpg去除文字后的目标图片地址
-- SsRmUrlStringhttps://i.tosoiot.com/r/5b135a6003a3075d/i-xxxx.jpg去除文字后的目标图片 https 地址

完整返回参数的真实实例

{
"Message": "ok",
"RequestId": "5b135a6003a3075d",
"Data": {
"Url": "http://i.tosoiot.com/20220311/r/5b135a6003a3075d/f-16417978499354920.jpg",
"SslUrl": "https://i.tosoiot.com/20220311/r/5b135a6003a3075d/f-16417978499354920.jpg",
"RmUrl": "http://i.tosoiot.com/20220311/r/5b135a6003a3075d/i-16417978499354920.jpg",
"SslRmUrl": "https://i.tosoiot.com/20220311/r/16417978499354920.jpg"
},
"Code": 200
}
package main

import (
"crypto/md5"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"net/url"
)

var XiangJi = "http://api.tosoiot.com" // 象寄图片翻译API地址
var UserKey = "XXXXXXXXX" // 密钥
var ImgTransKey = "XXXXXXXXX" // 图片翻译服务标识码

type ImageTranslateData struct {
Url string `json:"Url"`
SslUrl string `json:"SslUrl"`
HasWatermark bool `json:"HasWatermark"`
}

type ImageTranslateResponse struct {
Message string `json:"Message"`
RequestId string `json:"RequestId"`
Data ImageTranslateData `json:"Data"`
Code int `json:"Code"`
}

func GetImageTranslate(OriginUrl, SourceLanguage, TargetLanguage *string) (*ImageTranslateResponse, error) {
params := url.Values{}
params.Add("Action", "GetImageTranslate") // 服务类型,GetImageTranslate指“图片翻译”服务
params.Add("SourceLanguage", *SourceLanguage) // 来源语言,支持中(CHS/CHT)、英(ENG)、日(JPN)
params.Add("TargetLanguage", *TargetLanguage) // 目标语言,参考[语言列表]
params.Add("Url", *OriginUrl) // 图片地址
params.Add("ImgTransKey", ImgTransKey) // 图片翻译服务标识码
// 签名方法: md5( SourceLanguage + "_" + TargetLanguage + "_" + Url + "_" + UserKey + "_" + ImgTransKey ) 小写
signStr := *SourceLanguage + "_" + *TargetLanguage + "_" + *OriginUrl + "_" + UserKey + "_" + ImgTransKey
sign := fmt.Sprintf("%x", md5.Sum([]byte(signStr)))
params.Add("Sign", sign) // 签名

url := XiangJi + "?" + params.Encode()
rsp, err := httpGet(url)
if err != nil {
return nil, err
}

var res ImageTranslateResponse
err2 := json.Unmarshal(*rsp, &res)
if err2 != nil {
return nil, err
}
return &res, err
}

func httpGet(url string) (*[]byte, error) {
response, err := http.Get(url)
if err != nil {
log.Println("get error")
return nil, err
}
defer response.Body.Close()
body, err2 := ioutil.ReadAll(response.Body)
if err2 != nil {
log.Println("ioutil read error")
return nil, err2
}
return &body, err
}

func main() {
OriginUrl := "https://i.tosoiot.com/static/huodong/LiveStreaming_2022-06-22.jpeg"
SourceLanguage := "CHS"
TargetLanguage := "KOR"

rsp, err := GetImageTranslate(&OriginUrl, &SourceLanguage, &TargetLanguage)
log.Printf("Rsp: %#v", rsp)
log.Println("Url: ", rsp.Data.Url)
log.Println("SslUrl: ", rsp.Data.SslUrl)
log.Println("Err: ", err)
}

三、本地图片请求图片翻译 API

1. 访问接口

2. 请求参数

本地图片文件 POST 请求,支持文件 base64 格式或文件流

  • base64 格式需添加form-data,Key 为file-base64,Value 为图片文件 base64 编码

  • 文件流格式需添加form-data,Key 为file-stream,Value 为图片文件数据流

    字段名称是否必选类型示例值描述
    ActionStringGetImageTranslate服务类型,GetImageTranslate 指“图⽚翻译”服务
    SourceLanguageStringCHS源语⾔,支持中(CHS/CHT)、英(ENG)、日(JPN)
    TargetLanguageStringKOR目标语⾔, 参考[语⾔列表]
    UrlStringlocal图⽚地址固定为 local
    ImgTransKeyString参照[访问控制]图⽚翻译服务标识码
    CommitTimeString1653229753秒级时间戳
    SignString044a0bdea4128bb46aa59214ca821d6b签名, 签名⽅法: md5(CommitTime + "_" + UserKey + "_" + ImgTransKey) 小写
    NeedWatermarkInteger0(非必需字段)是否添加水印,1=添加,0=不添加,默认为 1。需在 Web 端配置水印模板,否则不添加
    NeedRmUrlInteger1(非必需字段)是否返回去文字图片链接。1=返回去文字图片链接,其它或无此字段,则不返回去文字图片链接
    QosStringLowLatency(非必需字段)翻译速度与翻译质量的偏好选项。LowLatency=偏好速度而牺牲质量 ,BestQuality=偏好图片翻译的质量
    EngineTypeInteger5文本翻译引擎,选填。默认与“图片翻译服务标识码”保持一致,当前仅当“图片翻译服务标识码”为“阿里云图片翻译服务标识码”时,接受 EngineType=5 为 ChatGPT 翻译,其他无效

NeedWatermark 设置为 1,则需要在网站账户后台配置好水印设置。

语言列表: AR:阿拉伯语, BG:保加利亚语, CHS:中文(简体), CHT:中文(繁體), CSY:捷克语, DEU:德语, ENG:英语, ESP:西班牙语, FRA:法语, HUN:匈牙利语, ID:印尼语, ITA:意大利语, JPN:日本语, JW:爪哇语, KOR:韩国语, MS:马来语, MY:缅甸语, NLD:荷兰语, PLK:波兰语, PTB:葡萄牙语(巴西), ROM:罗马尼亚语, RUS:俄语, TH:泰语, TL:他加禄语(菲律宾), TRK:土耳其语, VIN:越南语 等(语种较多,仅列出较常用语种,如需更多语种可联系客服)

3. 返回参数

字段名称类型示例值描述
CodeInteger200状态码(详细列表见文末),正常
MessageStringok状态码的明文含义,正常
RequestIdString4f93f79edff764a7请求的唯一 id
DataJson返回数据的 json 内容
-- UrlStringhttp://i.tosoiot.com/r/5b135a6003a3075d/f-xxxx.jpg翻译后的目标图片地址
-- SsUrlStringhttps://i.tosoiot.com/r/5b135a6003a3075d/f-xxxx.jpg翻译后的目标图片 https 地址
-- RmUrlStringhttp://i.tosoiot.com/r/5b135a6003a3075d/ixx-xx.jpg去除文字后的目标图片地址
-- SsRmUrlStringhttps://i.tosoiot.com/r/5b135a6003a3075d/i-xxxx.jpg去除文字后的目标图片 https 地址

完整返回参数的真实实例

{
"Message": "ok",
"RequestId": "5b135a6003a3075d",
"Data": {
"Url": "http://i.tosoiot.com/20220311/r/5b135a6003a3075d/f-16417978499354920.jpg",
"SslUrl": "https://i.tosoiot.com/20220311/r/5b135a6003a3075d/f-16417978499354920.jpg",
"RmUrl": "http://i.tosoiot.com/20220311/r/5b135a6003a3075d/i-16417978499354920.jpg",
"SslRmUrl": "https://i.tosoiot.com/20220311/r/16417978499354920.jpg"
},
"Code": 200
}

四、文本翻译 API

1. 访问接口

2. 请求参数

字段名称是否必选类型示例值描述
ActionStringGetTextTranslate服务类型,GetTextTranslate 指“文本翻译”服务
SourceLanguageStringCHS来源语⾔,参考[语⾔列表]
TargetLanguageStringKOR目标语言,参考[语⾔列表]
TextString我是中国人需翻译的原文
TextTransKeyString参照[访问控制]文本翻译服务标识码
CommitTimeString1653229753秒级时间戳
SignString044a0bdea4128bb46aa59214ca821d6b签名, 签名⽅法: md5(CommitTime + "_" + UserKey + "_" + TextTransKey) 小写
TypeInteger2(非必需字段)翻译引擎。Aliyun=0;Google=1;Papago=2;Baidu=3;DeepL=4;Chatgpt=5;GoogleLLM=6;默认是 Aliyun

语言列表: AR:阿拉伯语, CHS:中文(简体), CHT:中文(繁體), CSY:捷克语, DEU:德语, ENG:英语, ESP:西班牙语, FRA:法语, HUN:匈牙利语, ID:印尼语, ITA:意大利语, JPN:日本语, JW:爪哇语, KOR:韩国语, MS:马来语, MY:缅甸语, NLD:荷兰语, PLK:波兰语, PTB:葡萄牙语(巴西), ROM:罗马尼亚语, RUS:俄语, TH:泰语, TL:他加禄语(菲律宾), TRK:土耳其语, VIN:越南语 等(语种较多,仅列出较常用语种)

3. 返回参数

字段名称类型示例值描述
CodeInteger200状态码(详细列表见文末),200 代表正常
MessageStringok状态码的明文含义,正常
RequestIdString4f93f79edff764a7请求的唯一 id
DataJson返回数据的 json 内容
-- SourceLanguageStringCHS来源语⾔
-- TargetLanguageStringENG目标语言
-- OriginTextString我是中国人原文
-- TextStringI am Chinese译文

完整返回参数的真实实例

{
"Message": "ok",
"RequestId": "5b135a6003a3075d",
"Data": {
"SourceLanguage": "CHS",
"TargetLanguage": "ENG",
"OriginText": "我是中国人",
"Text": "I am Chinese"
},
"Code": 200
}

4. 字符与计费

字符长度的计算方法

  • 字符数按照需要翻译的源语言文本的字符长度为标准计算。其中,标点、空格、html 标签均会计入字符。一个汉字,英文字母,标点符号等,均按照一个字符计费。
  • 文本翻译单词请求接受的最大字符长度,因翻译引擎的不同各有差异。例如,阿里云单次翻译的文本串长度不能超过 5000,计算是否超长是通过 java 语言的 String.length() <=5000 计算的。超过字符长度限制后会出现超时,返回报错信息。

不同翻译引擎的计费差异

  • 不同翻译引擎对于翻译字符数的定价不同,因此我们对账户下各翻译引擎的文本翻译额度扣减,进行了差异化的折算。阿里云和百度的文本翻译扣减额度等于原文的字符长度,Google、Papago 和 DeepL 的文本翻译扣减额度等于原文字符长度的 3 倍到 4.5 倍(随着汇率波动)。详细额度扣减方式可咨询客服。

五、翻译额度查询 API

1. 访问接口

2. 请求参数

字段名称类型示例值描述
TypeInteger1购买类型(1=阿里云图片翻译,2=文本翻译,3=谷歌图片翻译,4=papago 图片翻译,5=百度图片翻译,6=图片暂存,7=DeepL 图片翻译,8=抠图,9=视频翻译,10=文本转语音)
ImgTransKeyString参照[访问控制]图⽚翻译服务标识码,当且仅当 Type=1 时需传递此参数
TextTransKeyString参照[访问控制]文本翻译服务标识码,当且仅当 Type=2 时需传递此参数
ImgTransGoogleKeyString参照[访问控制]文本翻译服务标识码,当且仅当 Type=3 时需传递此参数
ImgTransPapagoKeyString参照[访问控制]文本翻译服务标识码,当且仅当 Type=4 时需传递此参数
ImgTransBaiduKeyString参照[访问控制]文本翻译服务标识码,当且仅当 Type=5 时需传递此参数
ImgTransDeeplKeyString参照[访问控制]文本翻译服务标识码,当且仅当 Type=7 时需传递此参数
ImgMattingKeyString参照[访问控制]文本翻译服务标识码,当且仅当 Type=8 时需传递此参数
VideoTransKeyString参照[访问控制]文本翻译服务标识码,当且仅当 Type=9 时需传递此参数
SignString4f93f79edff764a7签名,签名方法:Type=1 时,Sign=md5( Type + "_"+ UserKey + "_" + ImgTransKey ) 小写;Type=2 时,Sign=md5( Type + "_"+ UserKey + "_" + TextTransKey ) 以此类推

请求示例

curl -XPOST -d "Type=1&ImgTransKey=用户的ImgTransKey或TextTransKey&Sign=计算所得签名"
"http://www.tosoiot.com/open/user/amount-query"

3. 返回参数

字段名称类型示例值描述
codeInteger0状态码,正常
msgStringok状态码的明文含义,正常
dataJson返回数据的 json 内容
-- typeInteger1购买类型
-- leftCountString“80820”剩余的图片翻译额度或文本翻译额度

返回示例

{
"code": "0", // Web 端,0 为正常值,非0 为异常值
"msg": "ok", // 非0 时,为对应的错误信息
"data": {
"type": 1,
"leftCount": "80828"
}
}

六、批量图片翻译 API

1. 图片翻译批量 API【同步|异步】

  • 请求类型: GET
  • 请求参数:
    • Action: GetImageTranslateBatch // GetImageTranslateBatch: 图片翻译【批量】
    • SourceLanguage: CHS // 来源语⾔,支持中(CHS/CHT)、英(ENG)、日(JPN)
    • TargetLanguage: KOR // 目标语言
    • Urls: https://xxxx/cib.jpg,http://xxxx/R3YAU.jpg // 图片地址,英文逗号分隔,注 :文中 url 参数在传递时需要进行 urlencode
    • ImgTransKey: 456654999 // 图片翻译服务标识码,参照[访问控制]
    • CommitTime: 1653229753 // 秒级时间戳
    • Sign: 044a0bdea4128bb46aa59214ca821d6b // 签名(小写)
      • 签名⽅法: md5(CommitTime + "_" + UserKey + "_" + ImgTransKey) 小写
      • UserKey: 用户私人秘钥,注意保密,防止泄露被盗用
    • Sync: 1|2 // 可选参数,默认 1,1=同步返回,2=异步返回
    • EngineType: 5 // 文本翻译引擎,选填。默认与“图片翻译服务标识码”保持一致,当前仅当“图片翻译服务标识码”为“阿里云图片翻译服务标识码”时,接受 EngineType=5 为 ChatGPT 翻译,其他无效
  • 响应参数:
    • Code: 200 // 状态码,正常
    • Message: ok // 错误的时候,返回的错误信息
    • RequestId: 91f7ca60aa28b15b // 请求的唯一串
    • Data: // 返回的数据内容
      • Content // 源图片翻译请求的响应内容,同步模式批量返回 RequestId 以及具体 Url 等信息(具体字段见下方样例),异步模式批量返回 RequestId

响应示例

// 同步 - 响应JSON数据结构
{
"Message": "ok",
"RequestId": "fcfd686744fcc5f4", // 此次请求的RequestId
"Data": {
"Content": [
{
"RequestId": "402f9f5c36d61b74", // 图片翻译的RequestId
"Code": 200,
"OriginUrl": "http://www.tosoiot.com/upload/20211122110639TR3YAU.jpg",
"Url": "http://i.tosoiot.com/r/402f9f5c36d61b74/f-2021AU.jpg",
"SslUrl": "https://i.tosoiot.com/r/402f9f5c36d61b74/f-2021AU.jpg",
"SourceLanguage": "CHS",
"TargetLanguage": "KOR"
},
{
"RequestId": "4ea35c8e82476483", // 图片翻译的RequestId
"Code": 200,
"OriginUrl": "http://www.tosoiot.com/upload/20211AU.jpg",
"Url": "http://i.tosoiot.com/r/4ea35c8e82476483/f-2021AU.jpg",
"SslUrl": "https://i.tosoiot.com/r/4ea35c8e82476483/f-2021AU.jpg",
"SourceLanguage": "CHS",
"TargetLanguage": "KOR"
}
]
},
"Code": 200
}

// 异步 - 响应JSON数据结构
{
"Message": "ok",
"RequestId": "84722c5e81a7b0cb", // 此次请求的RequestId
"Data": {
"Content": [
"493e4277248a30d4", // 图片翻译的RequestId
"29c280ae35f067be" // 图片翻译的RequestId
]
},
"Code": 200
}

2. 图片翻译批量查询【异步】

  • 类型: GET
  • 请求参数:
    • Action: GetImageTranslateBatchResult // GetImageTranslateBatchResult: 图片翻译【批量】【异步查询】
    • RequestIds: 493e4277248a30d4,29c280ae35f067be // 多个图片翻译的 RequestIds(而不是请求的 RequestId,见下方响应示例),按英文逗号分隔开
  • 响应参数:
    • Code: 200 // 状态码,正常
    • Message: ok // 错误的时候,返回的错误信息
    • RequestId: 91f7ca60aa28b15b // 请求的唯一串
    • Data // 返回的数据内容
      • Content: // 批量返回 RequestId 以及具体 Url 等信息(具体字段见下方样例)

响应示例

// 响应JSON数据结构
{
"Code": 200,
"Message": "ok",
"RequestId": "9eb88a7d3518593f", // 此次请求的RequestId
"Data": {
"Content": {
"31de8c80dca1b1fd1": {
// 图片翻译的RequestId
"Code": 115,
"Message": "请求ID错误"
},
"ee338726f069b731": {
// 图片翻译的RequestId
"RequestId": "ee338726f069b731",
"Code": 200,
"OriginUrl": "http://www.tosoiot.com/upload/2021AU.jpg",
"Url": "http://i.tosoiot.com/r/ee338726f069b731/f-2021AU.jpg",
"SslUrl": "https://i.tosoiot.com/r/ee338726f069b731/f-2021AU.jpg",
"SourceLanguage": "CHS",
"TargetLanguage": "KOR"
}
}
}
}

3. 图片翻译批量查询明细【异步】

  • 类型: GET
  • 请求参数:
    • Action: GetImageTranslateBatchQuery // GetImageTranslateBatchQuery: 图片翻译明细【异步查询】
    • RequestIds: 493e4277248a30d4,29c280ae35f067be // 多个图片翻译的 RequestIds(而不是请求的 RequestId,见下方响应示例),按英文逗号分隔开
  • 响应参数:
    • Code: 200 // 状态码,正常
    • Message: ok // 错误的时候,返回的错误信息
    • RequestId: 91f7ca60aa28b15b // 请求的唯一串
    • Data // 返回的数据内容
      • OriginUrl: http://localhost/path/123456.jpg // 源图片
      • Url: http://localhost/path/98218cfc.jpg // 源图片翻译后的目标图片
      • SslUrl: https://localhost/path/98218cfc.jpg // 源图片翻译后的目标图片,SSL 的 https 链接,需要判断是否存在该字段,不一定存在。
      • RmUrl: http://localhost/path/12418cfc.jpg // 源图片剔除待翻译文字后的图片
      • Orc:
        • source: 立即购买! // 源文字内容
        • target: Buy Now! // 目标文字内容
        • boundingBox: 134,0,1066,249 // 区域范围,四个值:左上角的 x 值,左上角的 y 值,区域的的宽,区域的高
        • fontSize: 20px // 文字大小
        • orientation: h // 图片所对应的方向,h:horizontal v:vertical

响应示例

// 响应JSON数据结构
{
"Message": "ok",
"RequestId": "9eb88a7d3518593f", // 此次请求的RequestId
"Data": {
"Content": {
"9a3d413c4a0b0342": null, // 图片翻译的RequestId。若RequestId错误,则返回null
"0bb26f6f94749af6": {
"RequestId": "0bb26f6f94749af6",
"Orc": [
{
"source": "点缀蜗居生活",
"target": "겸손한 거주지의 삶을 꾸미십시오.",
"bounding_box": "[[499,272], [681,272], [681,302], [499,302]]",
"font_size": "30px",
"orientation": "h",
"fg": "215,216,215",
"bg": "215,217,218"
}
],
"OriginUrl": "http://www.tosoiot.com/upload-temp/20211122110639TR3YAU.jpg",
"Url": "http://i.tosoiot.com/r/0bb26f6f94749af6/f-20211122110639TR3YAU.jpg",
"SslUrl": "https://i.tosoiot.com/r/0bb26f6f94749af6/f-20211122110639TR3YAU.jpg",
"RmUrl": "http://i.tosoiot.com/r/0bb26f6f94749af6/i-20211122110639TR3YAU.jpg",
"SslRmUrl": "https://i.tosoiot.com/r/0bb26f6f94749af6/i-20211122110639TR3YAU.jpg",
"SourceLanguage": "CHS",
"TargetLanguage": "KOR"
}
}
},
"Code": 200
}

七、本地图片请求一键抠图 API

1. 访问接口

2. 请求参数

本地图片文件 POST 请求,支持文件 base64 格式或文件流(Content-Type: multipart/form-data)

  • base64 格式需添加form-data,Key 为file-base64,Value 为图片文件 base64 编码;(形如: data:image/jpg;base64,/9j/4AAQS...)
  • 文件流格式需添加form-data,Key 为file-stream,Value 为图片文件数据流
字段名称类型示例值描述
ActionStringGetImageMatting服务类型,GetImageMatting 指“一键抠图”服务
CommitTimeString1653229753秒级时间戳
ImgMattingKeyString参照[访问控制]一键抠图服务标识码
SignString044a0bdea4128bb46aa59214ca821d6b签名, 签名⽅法: md5(CommitTime + "_" + UserKey + "_" + ImgMattingKey) 小写
*SyncInteger1非必需字段,同步或异步,默认 1,1=同步返回,2=异步返回
*BgColorString255,255,255非必需字段,设置抠图后的背景颜色 RGB 值,以逗号分割

*字段为非必需字段。

3. 返回参数

字段名称类型示例值描述
CodeInteger200状态码(详细列表见文末),200 为正常
MessageStringok状态码的明文含义,正常
RequestIdString4f93f79edff764a7请求的唯一 id
DataJson返回数据的 json 内容

完整返回参数的真实实例

// 同步 - 响应JSON数据结构
{
"Message": "ok",
"RequestId": "fcfd686744fcc5f4",
"Data": {
"RequestId": "39460axx8f60d32",
"OriginUrl": "http://i.tosoiot.com/20220522/39460axx8f60d32/logo_ideajl_f828fabd29a2b9ce.png",
"OriginSslUrl": "https://i.tosoiot.com/20220522/39460axx8f60d32/logo_ideajl_f828fabd29a2b9ce.png",
"Url": "http://i.tosoiot.com/20220522/39460axx8f60d32/c-logo_ideajl_f828fabd29a2b9ce.png",
"SslUrl": "https://i.tosoiot.com/20220522/39460axx8f60d32/c-logo_ideajl_f828fabd29a2b9ce.png"
},
"Code": 200
}
// 异步 - 响应JSON数据结构
{
"Message": "ok",
"RequestId": "39460axx8f60d32",
"Data": {
"Content": "39460axx8f60d32"
},
"Code": 200
}

4. 异步查询接口

  • 类型: GET
  • 请求参数:
    • Action: GetImageTranslateBatchResult //【异步查询】
    • RequestIds: 493e4277248a30d4,29c280ae35f067be // 多个图片翻译的 RequestIds(而不是请求的 RequestId,见下方响应示例),按英文逗号分隔开
  • 响应参数:
    • Code: 200 // 状态码,正常
    • Message: ok // 错误的时候,返回的错误信息
    • RequestId: 91f7ca60aa28b15b // 请求的唯一串
    • Data // 返回的数据内容
      • Content: // 批量返回 RequestId 以及具体 Url 等信息(具体字段见下方样例)

八、图片 URL 请求一键抠图 API【同步|异步】

1. 访问接口

2. 参数

  • 请求参数:
    • Action: GetImageMatting
    • CommitTime: 1653229753 // 秒级时间戳
    • ImgMattingKey: 111222333 // 一键抠图服务标识码,参照[访问控制]
    • Sign: 044a0bdea4128bb46aa59214ca821d6b // 签名
      • 签名方法: 小写 md5( CommitTime + "_" + UserKey + "_" + ImgMattingKey ), 例如: 1653229753_11112222_111222333
      • UserKey: 用户私人秘钥,参照[访问控制]
    • Url: http://i.tosoiot.com/20220522/39460axx8f60d32/logo_ideajl_f828fabd29a2b9ce.png
    • Sync: 1|2 // 可选参数,默认 1,1=同步返回,2=异步返回
    • BgColor:255,255,255 // 可选参数,可指定一键抠图的背景颜色
  • 响应参数:
    • Code: 200 // 状态码,正常
    • Message: ok // 错误的时候,返回的错误信息
    • RequestId: 91f7ca60aa28b15b // 请求的唯一串
    • Data: // 返回的数据内容
// 同步 - 响应JSON数据结构
{
"Message": "ok",
"RequestId": "39460axx8f60d32",
"Data": {
"RequestId": "39460axx8f60d32",
"OriginUrl": "http://i.tosoiot.com/20220522/39460axx8f60d32/logo_ideajl_f828fabd29a2b9ce.png",
"OriginSslUrl": "https://i.tosoiot.com/20220522/39460axx8f60d32/logo_ideajl_f828fabd29a2b9ce.png",
"Url": "http://i.tosoiot.com/20220522/39460axx8f60d32/c-logo_ideajl_f828fabd29a2b9ce.png",
"SslUrl": "https://i.tosoiot.com/20220522/39460axx8f60d32/c-logo_ideajl_f828fabd29a2b9ce.png"
},
"Code": 200
}
// 异步 - 响应JSON数据结构,调用精修|人工接口参考:GetImageTranslateQuery 或 GetImageTranslateBatchQuery
{
"Message": "ok",
"RequestId": "39460axx8f60d32",
"Data": {
"Content": "39460axx8f60d32"
},
"Code": 200
}

九、图片翻译精修工具

  1. 一般在页面的弹框中通过 iframe 引入象寄图片精修工具,为弹框和 iframe 设置合适的宽高以保证显示效果。
  2. 待 iframe 加载完毕后,通过 iframe 的 window 对象向象寄图片精修工具发送一个 postMessage 消息,批量传递 requestId。
  3. 接入方通过监听象寄精修工具发送的 message 消息,获取精修结果 ,all 中包含了本次传入精修工具中的所有图片信息。
  4. 指定精修工具页面语言:https://www.xiangjifanyi.com/image-editor/#/?lang=KOR 支持中(CHS/CHT)、英(ENG)、日(JPN)、韩(KOR)、西班牙语(ESP)、葡萄牙语(PTB)
<!-- 1.在弹窗中通过 iframe 加载象寄精修工具 -->
<div id="some-dialog">
<iframe
id="xiangji-image-editor"
title="象寄图片精修工具"
style="width: 100%; height: 100%;"
src="https://www.xiangjifanyi.com/image-editor/"
frameborder="0"
onload="iframeOnload()"
></iframe>
</div>
<script type="text/javascript">
// 2.监听 iframe onload 事件,并向其发送需要处理的图片 requestId 数组
function iframeOnload() {
var iframe = document.querySelector('#xiangji-image-editor');
iframe.contentWindow.postMessage(
{
name: "XJ_IMAGE_EDITOR_REQUESTIDS",
requestIds: ["f350044c1c722a35"]
},
'https://www.xiangjifanyi.com'
);
}
// 3.监听 iframe 发送的 message 事件,从中获取精修结果
window.addEventListener('message', function (e) {
const { name, all } = e.data;
if (e.origin === 'https://www.xiangjifanyi.com' && name === 'XJ_IMAGE_EDITOR_URL') {
console.log(all);
}
});
</script>

精修工具返回的 message 格式如下:

{
// 固定值
"name": "XJ_IMAGE_EDITOR_URL",
// 当前图片的精修url
"url": "https://www.example.com/a.png",
// 当前图片的requestId
"requestId": "hdiajdisajdas",
// 本次批量精修中所有图片的requestId与精修后url映射,包括当前正在编辑的图片
// 注意:没有经过精修工具编辑的图片url仍为通过api翻译的图片url
"all": {
"d01e619220a897ff": "https://www.example.com/a.png",
"3dca52098ecd4550": "https://www.example.com/b.png"
}
}

十、图片翻译精修工具对接【智能消除笔】和【文本翻译】功能

功能示例图备注
智能消除笔智能消除笔智能消除笔对图像的修复效果优于普通消除笔
文本翻译文本翻译方便编辑图像时实时对文本进行翻译
<!-- 在弹窗中通过 iframe 加载象寄精修工具 -->
<div id="some-dialog">
<iframe
id="xiangji-image-editor"
title="象寄图片精修工具"
style="width: 100%; height: 100%;"
src="https://www.xiangjifanyi.com/image-editor/#/?CommitTime=1667920070&AigcKeySign=123&AigcKey=123&TextTransSign=123&TextTransKey=123"
frameborder="0"
onload="iframeOnload()"
></iframe>
</div>

iframe src 中的参数如下(需要在服务端计算出签名)

参数类型参数备注
公共参数CommitTime生成签名时的时间戳,单位秒
【智能消除笔】参数AigcKeySignAigc 签名,计算方法为:`md5(CommitTime_UserKey_AigcKey)`
AigcKeyAigc 标识码
【文本翻译】参数TextTransSign文本翻译签名,计算方法为 `md5(CommitTime_UserKey_TextTransKey)`
TextTransKey文本翻译标识码

十一、一键抠图精修工具

  1. 一般在页面的弹框中通过 iframe 引入象寄一键抠图精修工具,为弹框和 iframe 设置合适的宽高以保证显示效果。
  2. 待 iframe 加载完毕后,通过 iframe 的 window 对象向象寄图片精修工具发送一个 postMessage 消息,批量传递 requestId(目前抠图精修工具只支持单图精修)。
  3. 接入方通过监听象寄精修工具发送的 message 消息,获取精修结果 ,all 中包含了本次传入精修工具中的所有图片信息及精修结果。
<!-- 1.在弹窗中通过 iframe 加载象寄精修工具 -->
<div id="some-dialog">
<iframe
id="xiangji-koutu-editor"
title="象寄抠图精修工具"
style="width: 100%; height: 100%;"
src="https://www.xiangjifanyi.com/koutu/"
frameborder="0"
onload="iframeOnload()"
></iframe>
</div>
<script type="text/javascript">
// 2.监听 iframe onload 事件,并向其发送需要处理的图片 requestId 数组
function iframeOnload() {
var iframe = document.querySelector('#xiangji-koutu-editor');
iframe.contentWindow.postMessage(
{
name: 'XJ_KOUTU_REQUESTIDS',
requestIds: ['9e3e6fa4013b1c2e'],
},
'https://www.xiangjifanyi.com'
);
}
// 3.监听 iframe 发送的 message 事件,从中获取精修结果
window.addEventListener('message', function (e) {
const { name, all } = e.data;
if (e.origin === 'https://www.xiangjifanyi.com' && name === 'XJ_KOUTU_RESULT') {
console.log(all);
}
});
</script>

精修工具返回的 message 格式如下:

{
// 固定值
"name": "XJ_KOUTU_RESULT",
// 当前图片的精修url
"url": "https://www.example.com/a.png",
// 当前图片的requestId
"requestId": "9e3e6fa4013b1c2e",
// 本次批量精修中所有图片的requestId与精修后url映射,包括当前正在编辑的图片
// 注意:没有经过精修工具编辑的图片url仍为通过api翻译的图片url
"all": {
"d01e619220a897ff": "https://www.example.com/a.png",
"3dca52098ecd4550": "https://www.example.com/b.png"
}
}

注:浏览器需取消“禁用缓存”,否则可能出现不可知问题

附录

请求返回错误码

服务错误码错误码含义
101请求超时
102系统错误
103URL 编码错误
104参数错误
105该语向不支持
106语种识别错误
107翻译错误
108字符过长
109子账号没有权限
110账号没有开通服务
111子账号服务失败
112翻译服务调用失败
113账号服务没有开通或者欠费
114任务尚未处理完成
115请求 ID 错误
116任务数据解析失败
117任务数据已过期
199未知错误
200响应成功