---
seo_title: API PNG in JPEG: Converti PNG in JPG da codice | EnConvert
meta_desc: Converti PNG in JPEG via API REST. POST /v1/convert/png-to-jpeg compone la trasparenza su sfondo bianco e restituisce byte grezzi o un URL prefirmato.
keywords: api png in jpeg, convertire png in jpg api, png in jpg api rest, trasparenza png in jpeg, convertire png in jpg python, api conversione immagini rest, png in jpeg sfondo bianco, api convertitore png jpg
---

# API PNG in JPEG

Converti immagini PNG in JPEG in modo programmatico con `POST /v1/convert/png-to-jpeg`. L'endpoint accetta un upload `.png` e, poiché JPEG non supporta la trasparenza, compone le eventuali aree trasparenti su uno sfondo bianco. 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/png-to-jpeg
```

**Content-Type:** `multipart/form-data`

**Input accettato:** file `.png`

**Formato di output:** `.jpeg` (`image/jpeg`)

---

## 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 | Sì | -- | Il file immagine `.png` da convertire. |
| `output_filename` | `string` | No | Nome del file di input | Nome file di output personalizzato. L'estensione `.jpeg` 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
- Se il PNG ha un canale alfa (RGBA), le aree trasparenti vengono composte su uno **sfondo bianco** prima della conversione
- Gli altri modi colore non RGB vengono convertiti in RGB
- La qualità di output è impostata al massimo (100)

<div class="alert alert-info">
<strong>Nota sulla trasparenza:</strong> JPEG non supporta la trasparenza. Eventuali aree trasparenti o semitrasparenti del tuo PNG appariranno bianche nell'output JPEG.
</div>

---

## Risposta

### Download diretto (`direct_download=true`, predefinito)

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

Restituisce i byte grezzi dell'immagine.

### Risposta con metadati (`direct_download=false`)

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

---

## Esempi di codice

### Python

```python
import requests

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

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

### Node.js

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

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

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

### PHP

```php
$ch = curl_init("https://api.enconvert.com/v1/convert/png-to-jpeg");
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.png")]
]);
$output = curl_exec($ch);
curl_close($ch);
file_put_contents("image_20260405_123456789.jpeg", $output);
```

### Go

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

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/png-to-jpeg", 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 `.png` |
| `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 PNG in JPG con una API REST?

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

### Cosa succede alla trasparenza del PNG nella conversione in JPEG?

JPEG non supporta la trasparenza, quindi le aree trasparenti o semitrasparenti del PNG (canale alfa RGBA) vengono composte su uno sfondo bianco e appariranno bianche nell'output JPEG.

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

### Posso controllare la qualità di output del JPEG?

No. La qualità di output è fissa al massimo (100) e non è configurabile. Puoi personalizzare il nome del file di output con il parametro `output_filename`; l'estensione `.jpeg` viene aggiunta automaticamente.
