---
seo_title: API da WebP a HEIC: Converti immagini WebP in HEIC | EnConvert
meta_desc: Converti WebP in HEIC con POST /v1/convert/webp-to-heic. Upload multipart, codifica pillow-heif a qualità 100, byte HEIC grezzi o URL di download prefirmato.
keywords: convertire webp in heic, api per convertire webp in heic, webp to heic converter api, convertitore webp heic online, webp in heic tramite api, api rest webp to heic, convertire immagini webp in heic, webp to heif api
---

# API da WebP a HEIC

Converti WebP in HEIC con l'endpoint `POST /v1/convert/webp-to-heic`, che converte un'immagine WebP nel formato HEIC (High Efficiency Image Container) alla massima qualità. Le aree trasparenti vengono composite su uno sfondo bianco, poiché HEIC non supporta la trasparenza. Le risposte restituiscono per impostazione predefinita i byte HEIC grezzi, oppure metadati JSON con un URL di download prefirmato quando `direct_download=false`.

---

## Endpoint

```
POST /v1/convert/webp-to-heic
```

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

**Input accettato:** file `.webp`

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

---

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

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Sì | -- | Il file immagine `.webp` da convertire. |
| `output_filename` | `string` | No | Nome del file di input | Nome file di output personalizzato. L'estensione `.heic` viene aggiunta automaticamente. |
| `direct_download` | `boolean` | No | `true` | Quando `true`, restituisce i byte grezzi dell'immagine. Quando `false`, restituisce metadati JSON con un URL di download prefirmato. |

---

## Dettagli della conversione

- Usa **Pillow** con **pillow-heif** per la codifica HEIC
- Se il WebP ha un canale alfa (RGBA), le aree trasparenti vengono composite su uno **sfondo bianco**
- La qualità di output è impostata al massimo (100)

<div class="alert alert-info">
<strong>Nota sulla trasparenza:</strong> HEIC non supporta la trasparenza. Eventuali aree trasparenti nel tuo WebP appariranno bianche nell'output HEIC.
</div>

---

## Risposta

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

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

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}/webp-to-heic/image_20260405_123456789.heic",
    "filename": "image_20260405_123456789.heic",
    "file_size": 45678,
    "conversion_time_seconds": 0.5
}
```

---

## Esempi di codice

### Python

```python
import requests

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

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

### Node.js

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

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

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

### PHP

```php
$ch = curl_init("https://api.enconvert.com/v1/convert/webp-to-heic");
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.heic", $output);
```

### Go

```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-heic", 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

| Status | Condition |
|--------|-----------|
| `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 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 consentita dal piano |

---

## Limiti

| Limit | Value |
|-------|-------|
| 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 HEIC con una REST API?

Invia una richiesta POST `multipart/form-data` a `/v1/convert/webp-to-heic` con il file `.webp` nel campo `file`, autenticata tramite `X-API-Key` o un JWT Bearer. La risposta restituisce per impostazione predefinita i byte HEIC grezzi, oppure imposta `direct_download=false` per ricevere JSON con un URL di download prefirmato.

### Cosa succede alla trasparenza quando converto WebP in HEIC?

HEIC non supporta la trasparenza. Se il WebP ha un canale alfa (RGBA), le aree trasparenti vengono composite su uno sfondo bianco nell'output HEIC.

### Posso scegliere la qualità di output dell'HEIC?

No. La qualità di output è fissata al massimo (100) e non è configurabile. La codifica utilizza Pillow con pillow-heif.

### Perché l'endpoint da WebP a HEIC restituisce un errore 413?

`413 Payload Too Large` viene restituito quando il file caricato supera la dimensione massima consentita dal piano (5 MB nel piano Founding).
