API-Referenz
Bilder konvertieren
Vektorisieren Sie ein Bild als SVG oder exportieren Sie PNG, PDF, TIFF und PPTX, auch für Flussdiagramme.
JSON-Anfrageinhalt#
POST /images/conversions. Erforderlicher Berechtigungsbereich: figures:generate.
| Feld | Typ | Erforderlich | Standard | Regeln |
|---|---|---|---|---|
| image | string | ja | — | Eine PNG- oder JPEG-file_id oder die SVG-Ausgabe eines Flussdiagramms bis 20 MB; svg akzeptiert auch WebP |
| format | string | ja | — | svg, png, pdf, tiff oder pptx |
| vector_mode | string | nein | editable_text | Nur für svg: editable_text oder full_vector |
| dpi | integer | nein | 300 | Nicht für svg: 300, 600 oder 1000 |
| width | integer | nein | 2048 | Nur für Flussdiagramm-SVG-Quelldateien: lange Seite in Pixeln, 256–4096, insgesamt höchstens 8,388,608 Pixel |
SVG-Vektorisierung#
- Kostet 150 Credits und erfordert einen kostenpflichtigen Tarif. Verwendet denselben Vektorisierer wie die Canvas-Bearbeitung auf der Website. Die Quelle ist ein PNG-, JPEG- oder WebP-Bild.
editable_texterhält Text als bearbeitbaren SVG-Text;full_vectorzeichnet alles einschließlich Text als Pfade nach.- Die Vektorisierung läuft als Auftrag. Credits werden erst reserviert, nachdem die Vektorisierungsaufgabe angenommen wurde. Die
creditsdes Auftrags werden aus dem Ledger zurückgelesen. Eine fehlgeschlagene Vektorisierung wird erstattet und gibt für diesen SchlüsselTASK_FAILEDzurück. - Die Konvertierung eines bereits vektorisierten Bildes gibt das frühere SVG zurück und kostet diesen Auftrag nichts.
- Ist der Vektorisierer vor dem Aufgabenstart vorübergehend nicht verfügbar, lautet die Antwort
503 SERVICE_UNAVAILABLEmitRetry-After: Wiederholen Sie die Anfrage mit demselben Schlüssel.
PNG, PDF, TIFF und PPTX#
- Kostenlos, bis zu 200 Konvertierungen pro Konto und Tag. Sie werden sofort abgeschlossen; die Antwort ist ein Auftrag mit Status
succeeded. - Eine Konvertierung zählt erst nach erfolgreicher Prüfung aller Eingaben zum Tageskontingent und nur einmal pro Idempotency-Key. Eine Wiederholung mit demselben Schlüssel zählt nicht erneut. Nach Ausschöpfen des Kontingents lautet die Antwort
429 RATE_LIMITEDmitdetails.reason = DAILY_CONVERSION_LIMITundRetry-Afterbis zum Zurücksetzen des Tagesfensters. - Die Quelle ist ein PNG- oder JPEG-Bild oder die SVG-Ausgabe eines Flussdiagramms. WebP wird nicht akzeptiert:
UNSUPPORTED_SOURCE_FORMAT. - Eine Datei, deren kodierte Ausgabe 24 MiB überschreiten würde, wird mit
400 INVALID_REQUESTundOUTPUT_TOO_LARGEabgelehnt. Konvertieren Sie ein kleineres Bild. dpiwird in die Datei geschrieben und legt die physische Seitengröße von PDF und PPTX fest. Die Pixelzahl wird nicht geändert. Für mehr Pixel vergrößern Sie das Bild zuerst.- PNG und TIFF erfordern eine PNG-Quelle; PDF und PPTX akzeptieren auch JPEG. TIFF verwendet verlustfreie Deflate-Komprimierung.
- Die PPTX enthält eine Folie mit dem Bild, keine bearbeitbaren Formen.
Flussdiagramme exportieren#
Die SVG-Ausgabe eines Flussdiagramms kann in PNG, PDF, TIFF oder PPTX konvertiert werden. Der Server rendert sie mit Arial- und Noto-Schriften mit width Pixeln an der langen Seite: standardmäßig 2048, höchstens 4096 und insgesamt höchstens 8,388,608 Pixel; ein quadratisches Diagramm darf höchstens 2896 px groß sein. Größere Anfragen führen zu 400 INVALID_REQUEST mit RENDER_TOO_LARGE. Text, den die Schriften nicht darstellen können, wird mit 400 INVALID_REQUEST und SVG_NOT_RENDERABLE abgelehnt, statt als leere Kästchen gezeichnet zu werden. Wenn der Renderer selbst fehlschlägt, lautet die Antwort 503 SERVICE_UNAVAILABLE mit SVG_RENDERER_UNAVAILABLE und Retry-After: Wiederholen Sie die Anfrage mit demselben Schlüssel. Andere SVG-Dateien sind als Eingaben nicht möglich.
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())