API da JPEG a WebP#
Converti immagini JPEG in WebP in modo programmatico con POST /v1/convert/jpeg-to-webp. L'endpoint accetta un file .jpeg o .jpg caricato e produce un WebP di alta qualità con una dimensione file inferiore rispetto al JPEG equivalente. È un semplice passaggio di ottimizzazione immagini per le pipeline di distribuzione web. Le risposte restituiscono byte immagine grezzi per il download diretto oppure metadati JSON con un URL di download prefirmato.
Endpoint#
POST /v1/convert/jpeg-to-webp
Content-Type: multipart/form-data
Input accettato: file .jpeg or .jpg
Formato di output: .webp (image/webp)
Autenticazione#
Richiede una chiave API privata oppure un token JWT da chiave pubblica.
X-API-Key: sk_your_private_key
Oppure:
Authorization: Bearer <jwt_token>
Parametri della richiesta#
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
file |
file | Sì | -- | Il file immagine .jpeg or .jpg da convertire. |
output_filename |
string |
No | Nome file di input | Nome file di output personalizzato. L'estensione .webp viene aggiunta automaticamente. |
direct_download |
boolean |
No | true |
Se true, restituisce i byte immagine grezzi. Se false, restituisce metadati JSON con un URL di download prefirmato. |
Dettagli della conversione#
- Usa Pillow per la conversione diretta del formato
- I dati colore RGB del JPEG vengono mantenuti nell'output WebP
- La qualità di output è impostata al massimo (100)
- WebP raggiunge tipicamente dimensioni file inferiori del 25-35% rispetto a JPEG a parità di qualità visiva
Risposta#
Download diretto (direct_download=true, predefinito)#
HTTP 200 OK
Content-Type: image/webp
Content-Disposition: inline; filename="photo_20260405_123456789.webp"
Restituisce i byte immagine grezzi.
Risposta con metadati (direct_download=false)#
{
"presigned_url": "https://spaces.example.com/...",
"object_key": "env/files/{project_id}/jpeg-to-webp/photo_20260405_123456789.webp",
"filename": "photo_20260405_123456789.webp",
"file_size": 45678,
"conversion_time_seconds": 0.5
}
Esempi di codice#
Python#
import requests
with open("photo.jpg", "rb") as f:
response = requests.post(
"https://api.enconvert.com/v1/convert/jpeg-to-webp",
headers={"X-API-Key": "sk_your_private_key"},
files={"file": ("photo.jpg", f)}
)
with open("photo_20260405_123456789.webp", "wb") as out:
out.write(response.content)
Node.js#
const form = new FormData();
form.append("file", fs.createReadStream("photo.jpg"));
const response = await fetch("https://api.enconvert.com/v1/convert/jpeg-to-webp", {
method: "POST",
headers: { "X-API-Key": "sk_your_private_key" },
body: form
});
fs.writeFileSync("photo_20260405_123456789.webp", Buffer.from(await response.arrayBuffer()));
PHP#
$ch = curl_init("https://api.enconvert.com/v1/convert/jpeg-to-webp");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: sk_your_private_key"],
CURLOPT_POSTFIELDS => ["file" => new CURLFile("photo.jpg")]
]);
$output = curl_exec($ch);
curl_close($ch);
file_put_contents("photo_20260405_123456789.webp", $output);
Go#
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "photo.jpg")
file, _ := os.Open("photo.jpg")
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/jpeg-to-webp", 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 .jpeg or .jpg |
400 Bad Request |
Conversione 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 file | Dipende dal piano (Founding: 5 MB) |
| Qualità di output | Massima (non configurabile) |
| Conversioni mensili | Dipende dal piano |
Domande frequenti#
Come converto un JPG in WebP con una REST API?#
Invia una richiesta POST multipart/form-data a /v1/convert/jpeg-to-webp con il tuo file .jpeg o .jpg nel campo file, autenticandoti tramite X-API-Key o un token JWT Bearer. Per impostazione predefinita l'API risponde con i byte WebP grezzi.
Quanto è più piccolo WebP rispetto a JPEG?#
WebP raggiunge tipicamente dimensioni file inferiori del 25-35% rispetto a JPEG a parità di qualità visiva. Questo endpoint converte con Pillow alla qualità massima (100), mantenendo i dati colore RGB del JPEG.
Posso ottenere un URL di download invece dei byte immagine grezzi?#
Sì. Imposta direct_download=false e l'API restituisce metadati JSON che includono presigned_url, object_key, filename, file_size e conversion_time_seconds.
Posso impostare la qualità di output WebP o il nome del file?#
La qualità di output è fissata al massimo (100) e non è configurabile. Puoi impostare un nome file di output personalizzato con il parametro output_filename; l'estensione .webp viene aggiunta automaticamente.