API 參考文件
圖片轉換
將圖片向量化為 SVG,或匯出 PNG、PDF、TIFF 和 PPTX,也支援流程圖。
JSON 請求體#
POST /images/conversions。所需權限範圍:figures:generate。
| 欄位 | 類型 | 必填 | 預設值 | 規則 |
|---|---|---|---|---|
| image | string | 是 | — | PNG 或 JPEG 的 file_id,或流程圖的 SVG 輸出,最大 20 MB;svg 也接受 WebP |
| format | string | 是 | — | svg、png、pdf、tiff 或 pptx |
| vector_mode | string | 否 | editable_text | 僅適用於 svg:editable_text 或 full_vector |
| dpi | integer | 否 | 300 | 不適用於 svg:300、600 或 1000 |
| width | integer | 否 | 2048 | 僅適用於流程圖 SVG 原始檔:長邊畫素為 256–4096,總畫素最多 8,388,608 |
SVG 向量化#
- 消耗 150 點數,需要付費方案;使用與網站“在畫布中編輯”相同的向量化工具。原始檔為 PNG、JPEG 或 WebP 圖片。
editable_text將文字保留為可編輯的 SVG 文字;full_vector將所有內容(包括文字)描摹為路徑。- 轉換以任務形式執行。向量化任務被接納後才預留點數,任務的
credits從賬本讀回。向量化失敗時返還點數,該金鑰回傳TASK_FAILED。 - 轉換已向量化的圖片時,回傳此前的 SVG,本次任務不扣點數。
- 任務開始前,若向量化服務暫時不可用,則回傳
503 SERVICE_UNAVAILABLE和Retry-After:請用相同金鑰重試。
PNG、PDF、TIFF 和 PPTX#
- 免費,每個帳戶每天最多 200 次轉換。轉換立即完成,響應為
succeeded任務。 - 僅當輸入透過所有校驗後,轉換才計入每日額度;每個 Idempotency-Key 僅計一次,相同金鑰重試不會重複計數。超出額度時,回傳
429 RATE_LIMITED和details.reason = DAILY_CONVERSION_LIMIT,Retry-After指示每日視窗重置前的等待時間。 - 原始檔為 PNG、JPEG 圖片或流程圖 SVG 輸出;不接受 WebP(
UNSUPPORTED_SOURCE_FORMAT)。 - 編碼後的輸出超過 24 MiB 時,回傳
400 INVALID_REQUEST(OUTPUT_TOO_LARGE);請轉換更小的圖片。 dpi寫入檔案,並決定 PDF 和 PPTX 的實際頁面尺寸,不會重新取樣畫素。需要更多畫素時,請先放大圖片。- PNG 和 TIFF 需要 PNG 原始檔;PDF 和 PPTX 也接受 JPEG。TIFF 使用無損 Deflate 壓縮。
- PPTX 為包含圖片的單頁幻燈片,不是可編輯形狀。
流程圖匯出#
流程圖 SVG 輸出可轉換為 PNG、PDF、TIFF 或 PPTX。伺服器使用 Arial 和 Noto 字型渲染,長邊為 width 畫素(預設 2048,最多 4096,總畫素最多 8,388,608:正方形圖最多 2896 px)。超過限制時回傳 400 INVALID_REQUEST(RENDER_TOO_LARGE)。字型無法繪製的文字會回傳 400 INVALID_REQUEST(SVG_NOT_RENDERABLE),不會顯示為空方框。渲染器本身失敗時,回傳 503 SERVICE_UNAVAILABLE(SVG_RENDERER_UNAVAILABLE)和 Retry-After:請用相同金鑰重試。其他 SVG 檔案不能作為輸入。
cURL#
curl -X POST https://scifig.ai/api/v1/images/conversions \
-H "Authorization: Bearer $SCIFIG_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Prefer: wait=25" \
-H "Content-Type: application/json" \
-d '{
"image": "<file_id>",
"format": "pdf",
"dpi": 600
}'JavaScript#
const response = await fetch('https://scifig.ai/api/v1/images/conversions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SCIFIG_API_KEY}`,
'Idempotency-Key': crypto.randomUUID(),
Prefer: 'wait=25',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"image": "<file_id>",
"format": "pdf",
"dpi": 600
}),
});
const result = await response.json();
console.log(response.status, result);Python#
import os
import uuid
import requests
headers = {
"Authorization": f"Bearer {os.environ['SCIFIG_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
"Prefer": "wait=25",
}
response = requests.post(
"https://scifig.ai/api/v1/images/conversions",
headers=headers,
json={
"image": "<file_id>",
"format": "pdf",
"dpi": 600
},
timeout=60,
)
print(response.status_code, response.json())