API JPEG in PNG#

Converti immagini JPEG in PNG in modo programmatico con POST /v1/convert/jpeg-to-png. L'endpoint accetta un upload .jpeg o .jpg e produce un PNG lossless con piena fedeltà cromatica. Le risposte restituiscono i byte grezzi dell'immagine per il download diretto oppure metadati JSON con un URL di download prefirmato.


Endpoint#

POST /v1/convert/jpeg-to-png

Content-Type: multipart/form-data

Input accettato: file .jpeg or .jpg

Formato di output: .png (image/png)


Autenticazione#

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

X-API-Key: sk_your_private_key

Oppure:

Authorization: Bearer <jwt_token>

Parametri della richiesta#

Parametro Tipo Obbligatorio Default Descrizione
file file -- Il file immagine .jpeg or .jpg 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 prefirmato.

Dettagli della conversione#

  • Usa Pillow per la conversione diretta del formato
  • I dati colore RGB del JPEG vengono preservati senza perdita nell'output PNG
  • L'output PNG usa una compressione lossless
  • La qualità di output è massima (lossless)

Risposta#

Download diretto (direct_download=true, predefinito)#

HTTP 200 OK
Content-Type: image/png
Content-Disposition: inline; filename="photo_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}/jpeg-to-png/photo_20260405_123456789.png",
    "filename": "photo_20260405_123456789.png",
    "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-png",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("photo.jpg", f)}
    )

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

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

PHP#

$ch = curl_init("https://api.enconvert.com/v1/convert/jpeg-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("photo.jpg")]
]);
$output = curl_exec($ch);
curl_close($ch);
file_put_contents("photo_20260405_123456789.png", $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-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 .jpeg or .jpg
400 Bad Request Conversione dell'immagine non riuscita (file corrotto o non supportato)
401 Unauthorized Chiave API o token JWT mancante o non valido
402 Payment Required Quota mensile di ops esaurita
402 Payment Required Limite di archiviazione raggiunto
413 Payload Too Large Il file supera la dimensione massima prevista 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 JPG in PNG con una API REST?#

Invia una richiesta POST multipart/form-data a /v1/convert/jpeg-to-png con il file .jpeg o .jpg nel campo file, autenticandoti via X-API-Key o un token JWT Bearer. Di default l'API risponde con i byte PNG grezzi.

La conversione da JPEG a PNG è lossless?#

Sì. I dati colore RGB del JPEG vengono preservati senza perdita nell'output PNG, e il PNG stesso usa una compressione lossless alla massima qualità.

Posso ottenere un URL di download invece dei byte grezzi dell'immagine?#

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

Perché l'API restituisce 402 Payment Required?#

Un 402 significa che hai esaurito la quota mensile di ops o raggiunto il limite di archiviazione del tuo piano. I file che superano la dimensione massima del piano restituiscono invece 413 Payload Too Large.