SVG-zu-JPEG-API#
Rastern Sie SVG-Bilder programmatisch mit POST /v1/convert/svg-to-jpeg zu JPEG. Der Endpunkt rendert das SVG mit CairoSVG zu Pixeln, legt transparente Bereiche auf einen weißen Hintergrund und liefert ein JPEG. Die optionalen Parameter width und height legen die Ausgabeabmessungen in Pixeln fest. Die Antwort enthält entweder rohe Bilddaten zum direkten Download oder JSON-Metadaten mit einer presigned Download-URL.
Endpunkt#
POST /v1/convert/svg-to-jpeg
Content-Type: multipart/form-data
Akzeptierte Eingabe: .svg-Dateien
Ausgabeformat: .jpeg (image/jpeg)
Authentifizierung#
Erfordert entweder einen privaten API-Schlüssel oder ein JWT-Token eines öffentlichen Schlüssels.
X-API-Key: sk_your_private_key
Oder:
Authorization: Bearer <jwt_token>
Request-Parameter#
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
file |
Datei | Ja | -- | Die zu konvertierende .svg-Bilddatei. |
output_filename |
string |
Nein | Eingabedateiname | Benutzerdefinierter Ausgabedateiname. Die Endung .jpeg wird automatisch angehängt. |
direct_download |
boolean |
Nein | true |
Bei true werden rohe Bilddaten zurückgegeben. Bei false werden JSON-Metadaten mit einer presigned Download-URL zurückgegeben. |
width |
integer |
Nein | Eigene Größe des SVG | Ausgabebreite in Pixeln (1-10000). Wenn height weggelassen wird, wird die Höhe aus dem Seitenverhältnis des SVG abgeleitet. |
height |
integer |
Nein | Eigene Größe des SVG | Ausgabehöhe in Pixeln (1-10000). Wenn width weggelassen wird, wird die Breite aus dem Seitenverhältnis des SVG abgeleitet. |
Details zur Konvertierung#
- Verwendet CairoSVG, um das SVG zu einer PNG-Zwischendatei zu rendern, und anschließend Pillow, um in JPEG zu konvertieren
- Standardmäßig wird die Ausgabeauflösung durch die eigenen Attribute
width,heightundviewBoxdes SVG bestimmt (Standard 96 DPI); die Request-Parameterwidth/heightüberschreiben sie - Hat das SVG keine expliziten Abmessungen, verwendet CairoSVG seine eigenen Standardwerte
- Transparente Bereiche werden auf einen weißen Hintergrund gelegt
- Die Ausgabequalität ist auf Maximum (100) eingestellt
width und/oder height (Pixel, 1-10000), um die Ausgabegröße festzulegen. Eine Dimension allein skaliert das Bild proportional zum Seitenverhältnis des SVG; beide zusammen legen die exakte Leinwandgröße fest (was das Seitenverhältnis verändern kann). Anfragen über insgesamt 25.000.000 Ausgabepixeln werden mit 400 abgelehnt. Ohne diese Parameter bestimmen die eigenen Größenattribute des SVG die Auflösung.
Antwort#
Direkter Download (direct_download=true, Standard)#
HTTP 200 OK
Content-Type: image/jpeg
Content-Disposition: inline; filename="icon_20260405_123456789.jpeg"
Liefert rohe Bilddaten.
Metadaten-Antwort (direct_download=false)#
{
"presigned_url": "https://spaces.example.com/...",
"object_key": "env/files/{project_id}/svg-to-jpeg/icon_20260405_123456789.jpeg",
"filename": "icon_20260405_123456789.jpeg",
"file_size": 45678,
"conversion_time_seconds": 0.5
}
Code-Beispiele#
Python#
import requests
with open("icon.svg", "rb") as f:
response = requests.post(
"https://api.enconvert.com/v1/convert/svg-to-jpeg",
headers={"X-API-Key": "sk_your_private_key"},
files={"file": ("icon.svg", f)}
)
with open("icon_20260405_123456789.jpeg", "wb") as out:
out.write(response.content)
Node.js#
const form = new FormData();
form.append("file", fs.createReadStream("icon.svg"));
const response = await fetch("https://api.enconvert.com/v1/convert/svg-to-jpeg", {
method: "POST",
headers: { "X-API-Key": "sk_your_private_key" },
body: form
});
fs.writeFileSync("icon_20260405_123456789.jpeg", Buffer.from(await response.arrayBuffer()));
PHP#
$ch = curl_init("https://api.enconvert.com/v1/convert/svg-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("icon.svg")]
]);
$output = curl_exec($ch);
curl_close($ch);
file_put_contents("icon_20260405_123456789.jpeg", $output);
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-jpeg", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", "sk_your_private_key")
resp, _ := http.DefaultClient.Do(req)
Fehlerantworten#
| Status | Bedingung |
|---|---|
400 Bad Request |
Datei ist keine .svg-Datei |
400 Bad Request |
Bildkonvertierung fehlgeschlagen (beschädigte oder nicht unterstützte Datei) |
400 Bad Request |
width/height außerhalb des Bereichs (1-10000) oder insgesamt mehr als 25.000.000 Ausgabepixel |
401 Unauthorized |
Fehlender oder ungültiger API-Schlüssel / JWT-Token |
402 Payment Required |
Monatliches Ops-Kontingent aufgebraucht |
402 Payment Required |
Speicherlimit erreicht |
413 Payload Too Large |
Datei überschreitet die maximale Dateigröße des Plans |
Limits#
| Limit | Wert |
|---|---|
| Maximale Dateigröße | Abhängig vom Plan (Founding: 5 MB) |
| Ausgabequalität | Maximum (nicht konfigurierbar) |
| Maximale Ausgabegröße | 10000 px pro Dimension, insgesamt 25.000.000 px |
| Monatliche Konvertierungen | Abhängig vom Plan |
Häufig gestellte Fragen#
Wie konvertiere ich ein SVG mit einer REST-API zu JPG?#
Senden Sie einen multipart/form-data-POST-Request an /v1/convert/svg-to-jpeg mit Ihrer .svg-Datei im Feld file, authentifiziert über X-API-Key oder ein Bearer-JWT-Token. CairoSVG rendert das SVG zu einer PNG-Zwischendatei, anschließend konvertiert Pillow sie zu JPEG.
Wie steuere ich die Ausgabeauflösung beim Rastern eines SVG?#
Übergeben Sie die Formularfelder width und/oder height (in Pixeln, bis zu 10000 pro Dimension). Eine einzelne Dimension skaliert die Ausgabe proportional zum Seitenverhältnis des SVG; beide Dimensionen legen die exakte Ausgabegröße fest. Ohne sie bestimmen die eigenen Attribute width, height und viewBox des SVG die Auflösung.
Was passiert mit transparenten Bereichen im SVG?#
JPEG kennt keine Transparenz, daher werden transparente Bereiche in der Ausgabe auf einen weißen Hintergrund gelegt.
Kann ich eine Download-URL statt roher Bilddaten erhalten?#
Ja. Setzen Sie direct_download=false, dann liefert die API JSON-Metadaten mit presigned_url, object_key, filename, file_size und conversion_time_seconds.