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, height und viewBox des SVG bestimmt (Standard 96 DPI); die Request-Parameter width/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
Hinweis zur Auflösung: Übergeben Sie 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.