---
seo_title: API da PNG a SVG: Incorpora un PNG in un Wrapper SVG | EnConvert
meta_desc: Incorpora un PNG in un SVG con POST /v1/convert/png-to-svg. Il PNG è codificato in base64 come data URI in un elemento image SVG: un wrapper, non una vettorizzazione.
keywords: convertire png in svg, incorporare png in svg, png in svg senza vettorizzazione, base64 png data uri svg, api png to svg, png dentro svg wrapper, immagine raster in svg, png to svg rest api
---

# API da PNG a SVG

L'API da PNG a SVG incorpora un'immagine PNG all'interno di un wrapper SVG con una singola richiesta a `POST /v1/convert/png-to-svg`. I dati del PNG vengono codificati in base64 e inseriti come data URI all'interno di un elemento `<image>` SVG, con le dimensioni SVG e il viewBox che corrispondono alle dimensioni in pixel dell'immagine originale. Questa non è vettorizzazione: l'output è un'immagine raster racchiusa in un SVG. Le risposte restituiscono direttamente i byte SVG, oppure metadati JSON con un URL di download presigned quando `direct_download=false`.

---

## Endpoint

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

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

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

**Formato di output:** `.svg` (`image/svg+xml`)

---

## 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 `.png` da convertire. |
| `output_filename` | `string` | No | Nome del file di input | Nome file di output personalizzato. L'estensione `.svg` 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

- Il PNG viene **codificato in base64 e incorporato** all'interno di un elemento `<image>` SVG come data URI
- Le dimensioni dell'SVG e il viewBox corrispondono alle dimensioni in pixel dell'immagine originale
- La trasparenza del PNG viene preservata nei dati incorporati
- **Questa NON è vettorizzazione** -- l'output contiene i dati completi dell'immagine raster, non percorsi vettoriali

<div class="alert alert-warning">
<strong>Non è vettorizzazione:</strong> Questo endpoint incorpora l'immagine raster all'interno di un contenitore SVG. Non traccia né converte l'immagine in percorsi vettoriali. Il file di output sarà più grande dell'input a causa della codifica base64 (~33% di overhead).
</div>

---

## Risposta

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

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

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-svg/image_20260405_123456789.svg",
    "filename": "image_20260405_123456789.svg",
    "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-svg",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("image.png", f)}
    )

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

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

### PHP

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

### L'API da PNG a SVG vettorizza la mia immagine?

No. Questo endpoint incorpora il PNG raster all'interno di un contenitore SVG come data URI base64 in un elemento `<image>` SVG. Non traccia né converte l'immagine in percorsi vettoriali.

### Perché il mio file SVG di output è più grande del PNG di input?

Il PNG viene codificato in base64 quando viene incorporato nell'SVG, il che aggiunge circa il 33% di overhead, quindi il file di output è più grande dell'input.

### La trasparenza del PNG viene preservata quando viene incorporato in un SVG?

Sì. La trasparenza del PNG viene preservata nei dati incorporati, e le dimensioni dell'SVG e il viewBox corrispondono alle dimensioni in pixel dell'immagine originale.

### Come converto PNG in SVG con una API REST?

Invia una richiesta `POST` a `/v1/convert/png-to-svg` con il tuo file `.png` come `multipart/form-data`, autenticandoti tramite `X-API-Key` o un token JWT `Authorization: Bearer`. Ricevi i byte dell'SVG, oppure un `presigned_url` in JSON quando `direct_download=false`.

### Perché l'API restituisce 400 Bad Request?

Una risposta `400 Bad Request` significa che il file caricato non è un file `.png`, oppure che la conversione dell'immagine non è riuscita perché il file è corrotto o non supportato.
