API da WebP a PNG#

L'API da WebP a PNG converte un'immagine WebP nel formato PNG con una singola richiesta a POST /v1/convert/webp-to-png. Carica un file .webp come multipart/form-data e ricevi un PNG lossless come byte grezzi, oppure imposta direct_download=false per ottenere metadati JSON con un URL di download presigned. La trasparenza nel WebP viene preservata nell'output PNG.


Endpoint#

POST /v1/convert/webp-to-png

Content-Type: multipart/form-data

Input accettato: file .webp

Formato di output: .png (image/png)


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 .png 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#

  • Usa Pillow per la conversione diretta del formato
  • Se il WebP ha un canale alfa, viene preservato nell'output PNG
  • L'output PNG utilizza una compressione senza perdita (lossless)
  • Le modalità non RGBA/RGB vengono convertite in RGBA

Risposta#

Download diretto (direct_download=true, predefinito)#

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

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-png/image_20260405_123456789.png",
    "filename": "image_20260405_123456789.png",
    "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-png",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("image.webp", f)}
    )

with open("image_20260405_123456789.png", "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-png", {
    method: "POST",
    headers: { "X-API-Key": "sk_your_private_key" },
    body: form
});

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

PHP#

$ch = curl_init("https://api.enconvert.com/v1/convert/webp-to-png");
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.png", $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-png", 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 WebP in PNG con una API REST?#

Invia una richiesta POST a /v1/convert/webp-to-png con il tuo file .webp in un body multipart/form-data, autenticata tramite X-API-Key o un token JWT Authorization: Bearer. Il PNG convertito viene restituito come byte grezzi dell'immagine per impostazione predefinita.

La trasparenza viene preservata quando converto WebP in PNG?#

Sì. Se il WebP ha un canale alfa, viene preservato nell'output PNG; le modalità non RGBA/RGB vengono prima convertite in RGBA.

L'output PNG è lossless?#

Sì. L'output PNG utilizza una compressione senza perdita (lossless) e la conversione viene eseguita da Pillow.

Posso ottenere un URL di download invece dei byte grezzi del PNG?#

Sì. Imposta direct_download=false e l'API restituisce metadati JSON con presigned_url, filename, file_size e conversion_time_seconds.

Perché l'API restituisce 400 Bad Request?#

Un 400 Bad Request indica che il file caricato non è un file .webp, oppure che la conversione non è riuscita perché il file è corrotto o non supportato.