SVG in Bild in Python konvertieren

Quick Answer: Laden Sie SVG mit SVGDocument, erstellen Sie ImageSaveOptions, setzen Sie das Bildformat und rufen Sie Converter.convert_svg(document, options, output_path) auf. Mit ImageSaveOptions steuern Sie Hintergrundfarbe, Seitengröße, Ränder und Ausgabeauflösung.

SVG-zu-Bild-Konvertierung in Python

Aspose.SVG for Python via .NET kann SVG-Dokumente in Rasterformate wie JPG, BMP, TIFF, GIF und PNG konvertieren. Verwenden Sie JPG, wenn Transparenz nicht erforderlich ist, PNG für transparente Rasterausgabe, TIFF für Publishing und Bildverarbeitung, BMP für einfache Bitmap-Ausgabe und GIF für leichte Rasterausgabe.

Fokussierte Tutorials finden Sie unter SVG in PNG in Python konvertieren und SVG in JPG in Python konvertieren. Dieser Artikel behandelt den breiteren SVG-zu-Bild-Workflow und die Formatwahl.

Bevor Sie die Beispiele ausführen, installieren Sie Aspose.SVG for Python via .NET in Ihrer Python-Umgebung.

Beispiel: SVG mit Converter.convert_svg() in JPG konvertieren

Das folgende Beispiel verwendet SVGDocument, ImageSaveOptions und Converter.convert_svg(), um SVG in JPG zu konvertieren und Hintergrund, Seitengröße, Ränder und Auflösung festzulegen. JPG unterstützt keine Transparenz, daher ist ein Hintergrund oft wichtig.

 1import os
 2from aspose.svg import SVGDocument
 3from aspose.svg.converters import Converter
 4from aspose.svg.drawing import Margin, Page, Resolution, Size
 5from aspose.svg.rendering.image import ImageFormat
 6from aspose.svg.saving import ImageSaveOptions
 7from aspose.pydrawing import Color
 8
 9# Convert SVG to JPG with custom background, page size, and resolution
10input_folder = "data/"
11output_folder = "output/"
12input_path = os.path.join(input_folder, "christmas-tree.svg")
13output_path = os.path.join(output_folder, "christmas-tree.jpg")
14os.makedirs(output_folder, exist_ok=True)
15
16options = ImageSaveOptions()
17options.format = ImageFormat.JPEG
18options.background_color = Color.from_argb(233, 255, 241)
19options.page_setup.any_page = Page(Size(450, 450), Margin(20, 20, 20, 20))
20options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
21options.vertical_resolution = Resolution.from_dots_per_inch(96.0)
22
23with SVGDocument(input_path) as document:
24    Converter.convert_svg(document, options, output_path)

Das folgende Bild zeigt die SVG-Quelle und das konvertierte JPG mit benutzerdefinierter Hintergrundfarbe.

Original-SVG und konvertiertes JPG mit benutzerdefiniertem Hintergrund

Ausgabeformat ändern

Um SVG in einem anderen Bildformat zu speichern, setzen Sie ImageSaveOptions.format und verwenden die passende Dateiendung. Nutzen Sie zum Beispiel ImageFormat Werte wie ImageFormat.GIF mit .gif, ImageFormat.BMP mit .bmp oder ImageFormat.TIFF mit .tiff.

1options.format = ImageFormat.GIF
2output_path = os.path.join(output_folder, "image.gif")

Wichtige ImageSaveOptions-Eigenschaften

EigenschaftBedeutung
formatZielbildformat wie JPG, PNG, BMP, TIFF oder GIF
background_colorHintergrundfarbe für transparente SVG-Bereiche
page_setupAusgabegröße, Ränder und Seitenlayout
horizontal_resolutionHorizontale Ausgabeauflösung in Pixel pro Zoll
vertical_resolutionVertikale Ausgabeauflösung in Pixel pro Zoll
smoothing_modeRendering-Qualität für Formen und Kanten
compressionTIFF-Komprimierungseinstellungen

ImageSaveOptions erbt Bild-Rendering-Einstellungen von ImageRenderingOptions, daher sind viele Eigenschaften in Converter- und Device-Workflows gemeinsam.

SVG mit render_to() in Bild konvertieren

Die Methode render_to() sendet SVG-Inhalte an ein ImageDevice. Dieser Ansatz ist nützlich, wenn Ihre Anwendung bereits Rendering-Geräte verwendet oder das Zielgerät explizit wählen muss.

 1import os
 2from aspose.svg import SVGDocument
 3from aspose.svg.drawing import Margin, Page, Resolution, Size
 4from aspose.svg.rendering.image import ImageDevice, ImageFormat, ImageRenderingOptions
 5
 6# Render SVG to JPG through an ImageDevice
 7input_folder = "data/"
 8output_folder = "output/"
 9input_path = os.path.join(input_folder, "image.svg")
10output_path = os.path.join(output_folder, "image.jpg")
11os.makedirs(output_folder, exist_ok=True)
12
13options = ImageRenderingOptions()
14options.format = ImageFormat.JPEG
15options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
16options.vertical_resolution = Resolution.from_dots_per_inch(96.0)
17options.page_setup.any_page = Page(Size(600, 600), Margin(10, 10, 10, 10))
18
19with SVGDocument(input_path) as document:
20    with ImageDevice(options, output_path) as device:
21        document.render_to(device)

Häufige Fehler und Lösungen

ProblemWahrscheinliche UrsacheLösung
JPG hat schwarzen oder unerwarteten HintergrundJPG unterstützt keine TransparenzSetzen Sie vor der Konvertierung options.background_color
Ausgabe ist abgeschnitten oder zu großSeiteneinrichtung passt nicht zum SVG-Viewport oder zur gewünschten AusgabegrößeKonfigurieren Sie page_setup.any_page mit Page, Size und Margin
Bild ist unscharfAuflösung oder Seitengröße ist zu niedrigErhöhen Sie horizontal_resolution, vertical_resolution oder Ausgabeabmessungen
Falsches Format wird erzeugtBildformat und Dateiendung passen nicht zusammenSetzen Sie options.format und die Ausgabedateiendung bewusst
Externe Bilder oder CSS fehlenRelative Ressourcen können während der Konvertierung nicht aufgelöst werdenSpeichern Sie Ressourcen neben dem SVG oder verwenden Sie korrekte absolute Pfade

Online-SVG-zu-Bild-Konverter

Nutzen Sie den kostenlosen Online- SVG to JPG Converter oder den allgemeinen SVG Converter, um SVG-zu-Bild-Konvertierung vor der Python-Implementierung zu testen.

                
            

Online-SVG-zu-JPG-Konverter

FAQ

Wie konvertiere ich SVG in JPG in Python?

Laden Sie SVG mit SVGDocument, setzen Sie ImageSaveOptions.format auf ImageFormat.JPEG und rufen Sie Converter.convert_svg(document, options, output_path) auf.

Kann ich SVG mit demselben Code in BMP, TIFF oder GIF konvertieren?

Ja. Ändern Sie options.format auf den gewünschten ImageFormat-Wert und verwenden Sie die passende Dateiendung.

Warum sollte ich bei JPG-Ausgabe eine Hintergrundfarbe setzen?

JPG unterstützt keine Transparenz. Eine Hintergrundfarbe macht transparente SVG-Bereiche im konvertierten Bild vorhersehbar.

Kann ich die Bildgröße steuern?

Ja. Konfigurieren Sie options.page_setup.any_page mit Page, Size und Margin, und setzen Sie bei Bedarf die Auflösung.

Soll ich Converter.convert_svg() oder render_to() verwenden?

Verwenden Sie Converter.convert_svg() für normale Dateikonvertierung. Verwenden Sie render_to(), wenn Sie einen Workflow mit ImageDevice benötigen.

Verwandte Artikel