---
seo_title: API da SVG a HEIC: Converti immagini SVG in HEIC | EnConvert
meta_desc: Converti SVG in HEIC tramite POST /v1/convert/svg-to-heic. Carica multipart/form-data, ottieni byte HEIC grezzi o un URL presigned. Rendering CairoSVG, qualità 100.
keywords: convertire svg in heic api, come convertire svg in heic, svg to heic converter api, rasterizzare svg in heic, svg to heic rest api, convertire immagine svg in heic via api, cairosvg conversione heic api
---

# API da SVG a HEIC

Converti SVG in HEIC con l'endpoint `POST /v1/convert/svg-to-heic`. L'SVG viene renderizzato tramite CairoSVG, poi codificato come HEIC alla massima qualità, con le aree trasparenti composite su uno sfondo bianco. Le risposte restituiscono byte HEIC grezzi per impostazione predefinita, oppure metadati JSON con un URL di download presigned quando `direct_download=false`.

---

## Endpoint

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

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

**Input accettato:** file `.svg`

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

---

## 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 | Sì | -- | Il file immagine `.svg` 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` | Se `true`, restituisce i byte grezzi dell'immagine. Se `false`, restituisce metadati JSON con un URL di download presigned. |

---

## Dettagli della conversione

- Usa **CairoSVG** per renderizzare l'SVG in un PNG intermedio, poi **Pillow** con **pillow-heif** per la codifica HEIC
- La risoluzione di output è determinata dagli attributi `width`, `height` e `viewBox` dell'SVG stesso
- Le aree trasparenti vengono composite su uno **sfondo bianco** (HEIC non supporta la trasparenza)
- La qualità di output è impostata al massimo (100)

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

---

## Risposta

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

```
HTTP 200 OK
Content-Type: image/heic
Content-Disposition: inline; filename="icon_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}/svg-to-heic/icon_20260405_123456789.heic",
    "filename": "icon_20260405_123456789.heic",
    "file_size": 45678,
    "conversion_time_seconds": 0.5
}
```

---

## Esempi di codice

### Python

```python
import requests

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

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

### Node.js

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

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

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

### PHP

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

### Go

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

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/svg-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

| Stato | Condizione |
|--------|-----------|
| `400 Bad Request` | Il file non è un file `.svg` |
| `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 un SVG in HEIC con una API REST?

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

### La conversione da SVG a HEIC preserva la trasparenza?

No. HEIC non supporta la trasparenza, quindi le aree trasparenti nell'SVG vengono composite su uno sfondo bianco nell'output HEIC.

### Come viene determinata la risoluzione di output quando converto SVG in HEIC?

La risoluzione di output è determinata dagli attributi `width`, `height` e `viewBox` dell'SVG stesso. L'SVG viene renderizzato in un PNG intermedio con CairoSVG, poi codificato in HEIC con Pillow e pillow-heif.

### Perché l'endpoint da SVG a HEIC restituisce un errore 402?

`402 Payment Required` indica che è stata esaurita la quota mensile di ops o raggiunto il limite di storage del tuo piano. I file di dimensioni eccessive restituiscono invece `413 Payload Too Large`, mentre i file SVG non validi o corrotti restituiscono `400 Bad Request`.
