Riferimento API
Conversione di immagini
Vettorializza un’immagine in SVG oppure esporta PNG, PDF, TIFF e PPTX, inclusi i diagrammi di flusso.
Corpo JSON#
POST /images/conversions. Ambito richiesto: figures:generate.
| Campo | Tipo | Obbligatorio | Valore predefinito | Regole |
|---|---|---|---|---|
| image | string | sì | — | Un file_id di PNG o JPEG o il risultato SVG di un diagramma di flusso, fino a 20 MB; svg accetta anche WebP |
| format | string | sì | — | svg, png, pdf, tiff o pptx |
| vector_mode | string | no | editable_text | Solo per svg: editable_text o full_vector |
| dpi | integer | no | 300 | Non per svg: 300, 600 o 1000 |
| width | integer | no | 2048 | Solo per sorgenti SVG di diagrammi di flusso: lato lungo in pixel, 256–4096, massimo 8,388,608 pixel totali |
Vettorializzazione SVG#
- Costa 150 crediti e richiede un piano a pagamento; usa lo stesso vettorializzatore della modifica nel canvas del sito. La sorgente è un’immagine PNG, JPEG o WebP.
editable_textmantiene il testo come testo SVG modificabile;full_vectortraccia tutto, incluso il testo, come percorsi.- La vettorializzazione viene eseguita come processo. I crediti vengono riservati solo dopo l’accettazione dell’attività e i
creditsdel processo vengono riletti dal registro contabile. Una vettorializzazione non riuscita viene rimborsata e restituisceTASK_FAILEDper quella chiave. - Convertire un’immagine già vettorializzata restituisce lo SVG precedente senza costi per questo processo.
- Se il vettorializzatore è temporaneamente non disponibile prima dell’avvio, la risposta è
503 SERVICE_UNAVAILABLEconRetry-After: riprova con la stessa chiave.
PNG, PDF, TIFF e PPTX#
- Gratuito, fino a 200 conversioni per account al giorno. Terminano subito: la risposta è un processo
succeeded. - Una conversione conta per la quota giornaliera solo dopo che l’input ha superato tutti i controlli e una sola volta per Idempotency-Key: ripetere la stessa chiave non conta nuovamente. Oltre la quota, la risposta è
429 RATE_LIMITEDcondetails.reason = DAILY_CONVERSION_LIMITeRetry-Afterfino al ripristino della finestra giornaliera. - La sorgente è un’immagine PNG o JPEG o il risultato SVG di un diagramma di flusso; WebP non è accettato:
UNSUPPORTED_SOURCE_FORMAT. - Un file il cui risultato codificato supererebbe 24 MiB viene rifiutato con
400 INVALID_REQUESTeOUTPUT_TOO_LARGE; converti un’immagine più piccola. dpiviene scritto nel file e determina le dimensioni fisiche delle pagine PDF e PPTX; i pixel non vengono ricampionati. Per avere più pixel, ingrandisci prima l’immagine.- PNG e TIFF richiedono una sorgente PNG; PDF e PPTX accettano anche JPEG. TIFF usa la compressione Deflate senza perdita.
- Il PPTX contiene una diapositiva con l’immagine, non forme modificabili.
Esportazione dei diagrammi di flusso#
Il risultato SVG di un diagramma di flusso può essere convertito in PNG, PDF, TIFF o PPTX. Il server lo renderizza con caratteri Arial e Noto e width pixel sul lato lungo: 2048 per impostazione predefinita, massimo 4096 e 8,388,608 pixel totali; un grafico quadrato può quindi essere al massimo 2896 px. Una richiesta più grande restituisce 400 INVALID_REQUEST con RENDER_TOO_LARGE. Il testo che i caratteri non possono rappresentare viene rifiutato con 400 INVALID_REQUEST e SVG_NOT_RENDERABLE anziché disegnato come riquadri vuoti. Se il renderizzatore fallisce, la risposta è 503 SERVICE_UNAVAILABLE con SVG_RENDERER_UNAVAILABLE e Retry-After: riprova con la stessa chiave. Altri file SVG non possono essere usati come input.
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())