API da WebP a SVG#

Converti WebP in SVG con l'endpoint POST /v1/convert/webp-to-svg, che incapsula un'immagine WebP all'interno di un wrapper SVG. Il WebP viene prima decodificato in PNG, poi codificato in base64 e inserito come data URI all'interno di un elemento SVG <image>. Non si tratta di vettorizzazione. Le risposte restituiscono i byte SVG grezzi per impostazione predefinita, oppure metadati JSON con un URL di download presigned quando direct_download=false.


Endpoint#

POST /v1/convert/webp-to-svg

Content-Type: multipart/form-data

Input accettato: file .webp

Formato di output: .svg (image/svg+xml)


Autenticazione#

Richiede una chiave API privata oppure un token JWT generato da una chiave pubblica.

X-API-Key: sk_your_private_key

Oppure:

Authorization: Bearer <jwt_token>

Parametri della richiesta#

Parametro Tipo Obbligatorio Predefinito Descrizione
file file -- Il file immagine .webp da convertire.
output_filename string No Nome del file di input Nome file di output personalizzato. L'estensione .svg viene aggiunta automaticamente.
direct_download boolean No true Se true, restituisce i byte grezzi dell'immagine. Se false, restituisce metadati JSON con un URL di download presigned.

Dettagli della conversione#

  • Il WebP viene prima decodificato in PNG usando Pillow, poi codificato in base64 e incapsulato all'interno di un elemento SVG <image>
  • Le dimensioni dell'SVG e il viewBox corrispondono alle dimensioni in pixel dell'immagine originale
  • La trasparenza viene preservata nei dati PNG incapsulati
  • Non si tratta di vettorizzazione -- l'output contiene l'intero dato immagine raster, non percorsi vettoriali
Non è vettorizzazione: Questo endpoint incapsula l'immagine raster decodificata all'interno di un contenitore SVG. Non traccia né converte l'immagine in percorsi vettoriali.

Risposta#

Download diretto (direct_download=true, predefinito)#

HTTP 200 OK
Content-Type: image/svg+xml
Content-Disposition: inline; filename="image_20260405_123456789.svg"

Restituisce i byte grezzi dell'immagine.

Risposta con metadati (direct_download=false)#

{
    "presigned_url": "https://spaces.example.com/...",
    "object_key": "env/files/{project_id}/webp-to-svg/image_20260405_123456789.svg",
    "filename": "image_20260405_123456789.svg",
    "file_size": 45678,
    "conversion_time_seconds": 0.5
}

Esempi di codice#

Python#

import requests

with open("image.webp", "rb") as f:
    response = requests.post(
        "https://api.enconvert.com/v1/convert/webp-to-svg",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("image.webp", f)}
    )

with open("image_20260405_123456789.svg", "wb") as out:
    out.write(response.content)

Node.js#

const form = new FormData();
form.append("file", fs.createReadStream("image.webp"));

const response = await fetch("https://api.enconvert.com/v1/convert/webp-to-svg", {
    method: "POST",
    headers: { "X-API-Key": "sk_your_private_key" },
    body: form
});

fs.writeFileSync("image_20260405_123456789.svg", Buffer.from(await response.arrayBuffer()));

PHP#

$ch = curl_init("https://api.enconvert.com/v1/convert/webp-to-svg");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["X-API-Key: sk_your_private_key"],
    CURLOPT_POSTFIELDS => ["file" => new CURLFile("image.webp")]
]);
$output = curl_exec($ch);
curl_close($ch);
file_put_contents("image_20260405_123456789.svg", $output);

Go#

body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "image.webp")
file, _ := os.Open("image.webp")
io.Copy(part, file)
writer.Close()

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/webp-to-svg", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", "sk_your_private_key")
resp, _ := http.DefaultClient.Do(req)

Risposte di errore#

Stato Condizione
400 Bad Request Il file non è un file .webp
400 Bad Request Conversione dell'immagine non riuscita (file corrotto o non supportato)
401 Unauthorized Chiave API / token JWT mancante o non valido
402 Payment Required Quota mensile di ops esaurita
402 Payment Required Limite di storage raggiunto
413 Payload Too Large Il file supera la dimensione massima consentita dal piano

Limiti#

Limite Valore
Dimensione massima del file Dipende dal piano (Founding: 5 MB)
Qualità di output Massima (non configurabile)
Conversioni mensili Dipende dal piano

Domande frequenti#

Come converto un'immagine WebP in SVG con una API REST?#

Invia una richiesta POST multipart/form-data a /v1/convert/webp-to-svg con il file .webp nel campo file, autenticata tramite X-API-Key o un JWT Bearer. Ricevi direttamente i byte dell'SVG, oppure imposta direct_download=false per ottenere JSON con un URL di download presigned.

La conversione da WebP a SVG vettorizza l'immagine?#

No. L'endpoint decodifica il WebP in PNG con Pillow, poi lo codifica in base64 come data URI all'interno di un elemento SVG <image>. L'output contiene l'intero dato immagine raster, non percorsi vettoriali tracciati.

La trasparenza viene preservata quando converto WebP in SVG?#

Sì. La trasparenza viene preservata nei dati PNG incapsulati, e le dimensioni dell'SVG e il viewBox corrispondono alle dimensioni in pixel dell'immagine originale.

Perché l'endpoint da WebP a SVG restituisce un errore 400?#

400 Bad Request viene restituito quando il file caricato non è un file .webp, oppure quando la conversione fallisce perché il file è corrotto o non supportato.