SVG-zu-PNG-API#

Die SVG-zu-PNG-API rastert ein SVG-Bild mit einer einzigen Anfrage an POST /v1/convert/svg-to-png in das PNG-Format. Lade eine .svg-Datei als multipart/form-data hoch, und das SVG wird mit CairoSVG in Pixel gerendert, wobei die Transparenz in der PNG-Ausgabe erhalten bleibt. Die optionalen Parameter width und height legen die Ausgabeabmessungen in Pixeln fest. Die Antwort besteht standardmäßig aus rohen PNG-Bytes, oder aus JSON-Metadaten mit einer presigned Download-URL, wenn direct_download=false gesetzt ist.


Endpunkt#

POST /v1/convert/svg-to-png

Content-Type: multipart/form-data

Akzeptierte Eingabe: .svg-Dateien

Ausgabeformat: .png (image/png)


Authentifizierung#

Erfordert entweder einen privaten API-Schlüssel oder ein JWT-Token von einem öffentlichen Schlüssel.

X-API-Key: sk_your_private_key

Oder:

Authorization: Bearer <jwt_token>

Anfrageparameter#

Parameter Typ Erforderlich Standard Beschreibung
file file Ja -- Die zu konvertierende .svg-Bilddatei.
output_filename string Nein Name der Eingabedatei Benutzerdefinierter Ausgabedateiname. Die Erweiterung .png wird automatisch hinzugefügt.
direct_download boolean Nein true Bei true werden rohe Bild-Bytes zurückgegeben. Bei false werden JSON-Metadaten mit einer presigned Download-URL zurückgegeben.
width integer Nein Eigene Größe des SVGs Ausgabebreite in Pixeln (1-10000). Wenn height weggelassen wird, wird die Höhe aus dem Seitenverhältnis des SVGs abgeleitet.
height integer Nein Eigene Größe des SVGs Ausgabehöhe in Pixeln (1-10000). Wenn width weggelassen wird, wird die Breite aus dem Seitenverhältnis des SVGs abgeleitet.

Details zur Konvertierung#

  • Verwendet CairoSVG, um das SVG direkt in PNG zu rendern
  • Standardmäßig wird die Ausgabeauflösung durch die eigenen Attribute width, height und viewBox des SVGs bestimmt (Standard 96 DPI); die Request-Parameter width/height überschreiben sie
  • Die Transparenz bleibt in der PNG-Ausgabe erhalten
  • Wenn das SVG keine expliziten Abmessungen hat, verwendet CairoSVG seine eigenen Standardwerte
Hinweis zur Auflösung: Übergib width und/oder height (Pixel, 1-10000), um die Ausgabegröße festzulegen. Eine Dimension allein skaliert das Bild proportional zum Seitenverhältnis des SVGs; 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 SVGs die Auflösung.

Antwort#

Direkter Download (direct_download=true, Standard)#

HTTP 200 OK
Content-Type: image/png
Content-Disposition: inline; filename="icon_20260405_123456789.png"

Gibt rohe Bild-Bytes zurück.

Metadaten-Antwort (direct_download=false)#

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

Codebeispiele#

Python#

import requests

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

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

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

PHP#

$ch = curl_init("https://api.enconvert.com/v1/convert/svg-to-png");
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.png", $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-png", 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 rastere ich ein SVG mit einer REST API in PNG?#

Sende eine POST-Anfrage an /v1/convert/svg-to-png mit deiner .svg-Datei als multipart/form-data, authentifiziert über X-API-Key oder ein JWT-Authorization: Bearer-Token. CairoSVG rendert das SVG direkt in PNG und gibt die rohen Bytes zurück.

Wie steuere ich die Ausgabeauflösung des PNGs?#

Übergib die Formularfelder width und/oder height (in Pixeln, bis zu 10000 pro Dimension). Eine einzelne Dimension skaliert die Ausgabe proportional zum Seitenverhältnis des SVGs; beide Dimensionen legen die exakte Ausgabegröße fest. Ohne sie bestimmen die eigenen Attribute width, height und viewBox des SVGs die Auflösung.

Bleibt die Transparenz bei der Konvertierung von SVG zu PNG erhalten?#

Ja. Die Transparenz bleibt in der PNG-Ausgabe erhalten.

Was passiert, wenn mein SVG keine expliziten Abmessungen hat?#

Wenn das SVG keine expliziten Abmessungen hat, verwendet CairoSVG seine eigenen Standardwerte, um die Ausgabegröße zu bestimmen.

Kann ich eine presigned Download-URL statt roher PNG-Bytes erhalten?#

Ja. Setze direct_download=false, und die API gibt JSON mit presigned_url, filename, file_size und conversion_time_seconds zurück.