---
seo_title: API JPEG vers SVG : Intégrer un JPG dans un SVG | EnConvert
meta_desc: Encapsulez un JPEG dans un SVG avec POST /v1/convert/jpeg-to-svg. L'API intègre l'image en base64 dans un élément SVG image : conteneur raster, pas vectorisation.
keywords: convertir jpeg en svg, api jpg vers svg, intégrer jpeg dans svg, encapsuler jpg en svg api, image jpeg en svg par programmation, svg avec image base64, convertisseur jpg svg api
---

# API JPEG vers SVG

Convertissez un JPEG au format SVG avec `POST /v1/convert/jpeg-to-svg`, qui encode le JPEG en base64 et l'intègre sous forme d'URI de données dans un élément `<image>` du SVG. Il ne s'agit pas de vectorisation : la sortie est l'image raster complète encapsulée dans un conteneur SVG, utile pour les flux qui exigent du SVG mais acceptent du contenu raster intégré. Les réponses renvoient soit des octets bruts pour un téléchargement direct, soit des métadonnées JSON avec une URL de téléchargement présignée.

---

## Endpoint

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

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

**Entrée acceptée :** fichiers `.jpeg or .jpg`

**Format de sortie :** `.svg` (`image/svg+xml`)

---

## Authentification

Nécessite soit une clé API privée, soit un jeton JWT provenant d'une clé publique.

```
X-API-Key: sk_your_private_key
```

Ou :

```
Authorization: Bearer <jwt_token>
```

---

## Paramètres de la requête

| Paramètre | Type | Obligatoire | Valeur par défaut | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Oui | -- | Le fichier image `.jpeg or .jpg` à convertir. |
| `output_filename` | `string` | Non | Nom du fichier d'entrée | Nom de fichier de sortie personnalisé. L'extension `.svg` est ajoutée automatiquement. |
| `direct_download` | `boolean` | Non | `true` | Si `true`, renvoie les octets bruts de l'image. Si `false`, renvoie des métadonnées JSON avec une URL de téléchargement présignée. |

---

## Détails de la conversion

- Le JPEG est **encodé en base64 et intégré** dans un élément `<image>` du SVG sous forme d'URI de données
- Les dimensions du SVG et le viewBox correspondent aux dimensions en pixels de l'image d'origine
- **Il ne s'agit PAS de vectorisation** -- la sortie contient l'intégralité des données de l'image raster, et non des tracés vectoriels
- Utile pour les flux qui exigent du format SVG mais acceptent du contenu raster intégré

<div class="alert alert-warning">
<strong>Pas de vectorisation :</strong> cet endpoint intègre l'image raster dans un conteneur SVG. Il ne trace ni ne convertit l'image en tracés vectoriels. Le fichier de sortie sera plus volumineux que l'entrée en raison de l'encodage base64 (~33 % de surcharge).
</div>

---

## Réponse

### Téléchargement direct (`direct_download=true`, par défaut)

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

Renvoie les octets bruts de l'image.

### Réponse avec métadonnées (`direct_download=false`)

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

---

## Exemples de code

### Python

```python
import requests

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

with open("photo_20260405_123456789.svg", "wb") as out:
    out.write(response.content)
```

### Node.js

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

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

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

### PHP

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

### Go

```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-svg", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", "sk_your_private_key")
resp, _ := http.DefaultClient.Do(req)
```

---

## Réponses d'erreur

| Statut | Condition |
|--------|-----------|
| `400 Bad Request` | Le fichier n'est pas un fichier `.jpeg or .jpg` |
| `400 Bad Request` | Échec de la conversion de l'image (fichier corrompu ou non pris en charge) |
| `401 Unauthorized` | Clé API / jeton JWT manquant ou invalide |
| `402 Payment Required` | Quota mensuel d'ops épuisé |
| `402 Payment Required` | Limite de stockage atteinte |
| `413 Payload Too Large` | Le fichier dépasse la taille maximale autorisée par le forfait |

---

## Limites

| Limite | Valeur |
|-------|-------|
| Taille de fichier maximale | Selon le forfait (Founding : 5 MB) |
| Qualité de sortie | Maximale (non configurable) |
| Conversions mensuelles | Selon le forfait |

---

## Questions fréquentes

### Comment convertir un JPG en SVG avec une API REST ?

Envoyez une requête POST `multipart/form-data` à `/v1/convert/jpeg-to-svg` avec votre fichier `.jpeg` ou `.jpg` dans le champ `file`, authentifiée via `X-API-Key` ou un jeton JWT `Bearer`. L'API renvoie un SVG avec votre image intégrée en base64 dans un élément `<image>`.

### L'API JPEG vers SVG vectorise-t-elle mon image ?

Non. Cet endpoint ne trace ni ne convertit l'image en tracés vectoriels. Il intègre le JPEG raster dans un conteneur SVG sous forme d'URI de données en base64. Les dimensions du SVG et le viewBox correspondent aux dimensions en pixels de l'image d'origine.

### Pourquoi le fichier SVG de sortie est-il plus volumineux que mon JPEG d'entrée ?

L'encodage base64 ajoute environ 33 % de surcharge, donc le fichier de sortie est plus volumineux que l'entrée puisqu'il contient l'intégralité des données de l'image raster encodées sous forme de texte.

### Puis-je obtenir une URL de téléchargement plutôt que les octets bruts du fichier ?

Oui. Définissez `direct_download=false` et l'API renvoie des métadonnées JSON incluant `presigned_url`, `object_key`, `filename`, `file_size` et `conversion_time_seconds`.
