SVG in PNG in Python konvertieren

Quick Answer: Um SVG in PNG in Python zu konvertieren, laden Sie die Quelldatei mit SVGDocument, erstellen ImageSaveOptions und übergeben beides an Converter.convert_svg(). PNG ist das Standard-Bildformat, und ImageSaveOptions steuert Hintergrundfarbe, Seitengröße, Ränder und Auflösung.

SVG in PNG in Python konvertieren

PNG ist ein verlustfreies Rasterformat mit Transparenzunterstützung. Es eignet sich für Webgrafiken, Vorschauen, Thumbnails und Anwendungen, die SVG nicht direkt rendern können.

Das folgende Beispiel konvertiert document.svg mit Standard-PNG-Einstellungen in result.png:

1from aspose.svg import SVGDocument
2from aspose.svg.converters import Converter
3from aspose.svg.saving import ImageSaveOptions
4
5# Convert an SVG file to PNG using the default save options
6options = ImageSaveOptions()
7
8with SVGDocument("document.svg") as document:
9    Converter.convert_svg(document, options, "result.png")

Der Code führt drei Schritte aus:

  1. SVGDocument lädt die SVG-Datei und löst Inhalte sowie verknüpfte Ressourcen auf.
  2. ImageSaveOptions wählt Bildausgabe; das Standardformat ist PNG.
  3. Converter.convert_svg() rendert das Dokument und schreibt result.png.

SVG mit benutzerdefinierten Optionen in PNG konvertieren

Verwenden Sie ImageSaveOptions, wenn das PNG eine bestimmte Zeichenfläche, einen Hintergrund oder eine Auflösung benötigt. Das Beispiel konvertiert winter.svg, fügt einen festen Hintergrund hinzu, erstellt eine Seite von 600 × 550 mit 10-Pixel-Rändern und rendert mit 96 dpi:

 1import os
 2from aspose.svg import SVGDocument
 3from aspose.svg.converters import Converter
 4from aspose.svg.saving import ImageSaveOptions
 5from aspose.svg.drawing import Resolution, Page, Size, Margin
 6from aspose.pydrawing import Color
 7
 8# Convert SVG to PNG with a custom background, page, and resolution
 9input_folder = "data/"
10output_folder = "output/"
11input_path = os.path.join(input_folder, "winter.svg")
12output_path = os.path.join(output_folder, "winter.png")
13os.makedirs(output_folder, exist_ok=True)
14
15options = ImageSaveOptions()
16options.background_color = Color.from_argb(231, 217, 230)
17options.page_setup.any_page = Page(Size(600, 550), Margin(10, 10, 10, 10))
18options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
19options.vertical_resolution = Resolution.from_dots_per_inch(96.0)
20
21with SVGDocument(input_path) as document:
22    Converter.convert_svg(document, options, output_path)

Das resultierende PNG verwendet die angeforderten Seiteneinstellungen, statt sich nur auf den SVG-Viewport zu verlassen. Die Abbildung vergleicht das Quell-SVG mit dem PNG auf neuem Hintergrund.

Original-SVG und konvertiertes PNG mit benutzerdefiniertem Hintergrund

Wichtige ImageSaveOptions-Eigenschaften

EigenschaftWann verwenden
background_colorTransparente Bereiche mit einer gewählten Farbe füllen
page_setupSeitengröße und Ränder festlegen
horizontal_resolutionHorizontale Ausgabeauflösung in dpi festlegen
vertical_resolutionVertikale Ausgabeauflösung in dpi festlegen
smoothing_modeRasterisierungsqualität steuern
textTextrendering über TextOptions konfigurieren

Wenn background_color nicht gesetzt ist, bleiben transparente SVG-Bereiche in PNG transparent. Die Auflösung beeinflusst die Rasterdichte, während page_setup die Ausgabefläche steuert.

Häufige Fehler und Lösungen

ProblemWahrscheinliche UrsacheLösung
Das PNG ist leer oder abgeschnittenDas SVG hat keinen nutzbaren Viewport oder die Ausgabeseite ist zu kleinDefinieren Sie width, height oder viewBox, oder setzen Sie options.page_setup.any_page
Transparente Bereiche sehen unerwartet ausKein Ausgabefond wurde angegebenSetzen Sie options.background_color, wenn eine feste Zeichenfläche nötig ist
Text sieht anders ausEine referenzierte Schriftart ist nicht verfügbarInstallieren Sie die Schriftart oder vektorisieren Sie Text vor der Konvertierung
Verknüpfte Bilder oder CSS fehlenRelative Ressourcen können nicht aufgelöst werdenLaden Sie SVG vom Dateipfad oder geben Sie eine korrekte Basis-URI an
Ausgabeabmessungen sind unerwartetSeitengröße und Auflösung werden verwechseltVerwenden Sie page_setup für Abmessungen und horizontal_resolution/vertical_resolution für dpi

Online-SVG-zu-PNG-Konverter

Sie können die SVG-zu-PNG-Konvertierung auch im Browser testen. Laden Sie eine SVG-Datei hoch, wählen Sie PNG und vergleichen Sie das Ergebnis mit Ihrer programmgesteuerten Ausgabe.

                
            

FAQ

Was ist der kürzeste Weg, SVG in PNG in Python zu konvertieren?

Erstellen Sie ImageSaveOptions, öffnen Sie die Quelle mit SVGDocument und rufen Sie Converter.convert_svg(document, options, output_path) auf.

Erhält die SVG-zu-PNG-Konvertierung Transparenz?

Ja. PNG unterstützt Transparenz, und transparente SVG-Bereiche bleiben transparent, sofern Sie ImageSaveOptions.background_color nicht setzen.

Wie lege ich die PNG-Größe fest?

Setzen Sie ImageSaveOptions.page_setup mit Page, Size und Margin. Verwenden Sie die Auflösungseigenschaften separat, wenn eine bestimmte dpi-Zahl nötig ist.

Kann ich SVG-Inhalt aus einem String konvertieren?

Ja. Erstellen Sie ein SVGDocument aus dem SVG-String und einer Basis-URI, und übergeben Sie das Dokument an Converter.convert_svg().

Verwandte Artikel