SVG in PNG konvertieren in C#

Das PNG-Dateiformat unterstützt eine verlustfreie Bildkomprimierung, die es bei seinen Nutzern so beliebt macht. Es hat zwei Haupteinsatzgebiete: das World Wide Web und die Bildbearbeitung. Es wird häufig verwendet, um Bilder über das Netzwerk zu übertragen, Fotos und Grafiken auf Webseiten anzuzeigen und in Cloud-Speichern zu speichern. Es gibt einige Beschränkungen für die Verwendung von SVG auf Webseiten, so dass manchmal eine Konvertierung von SVG in PNG erforderlich ist. Mit Aspose.HTML können Sie SVG in das PNG-Format programmatisch konvertieren, mit voller Kontrolle über eine breite Palette von Konvertierungsparametern.

In diesem Artikel finden Sie Informationen zur Konvertierung von SVG in PNG unter Verwendung der Methoden ConvertSVG() der Klasse Converter und der Parameter ImageSaveOptions und ICreateStreamProvider. Sie können auch einen Online-SVG-Konverter ausprobieren, um die Aspose.HTML-API-Funktionalität zu testen und SVG im laufenden Betrieb zu konvertieren.

Online SVG Konverter

Sie können SVG mit Aspose.HTML API in Echtzeit in andere Formate konvertieren. Bitte laden Sie SVG aus dem lokalen Dateisystem, wählen Sie das Ausgabeformat und führen Sie das Beispiel aus. Die Speicheroptionen sind standardmäßig eingestellt. Sie erhalten das Konvertierungsergebnis sofort als separate Datei.

                
            

Wenn Sie SVG- in PNG-Bilder programmatisch konvertieren möchten, lesen Sie bitte die folgenden C#-Codebeispiele.

SVG zu PNG mit einer einzigen Codezeile

Die statischen Methoden der Klasse Converter werden in erster Linie als einfachste Möglichkeit zur Konvertierung einer SVG-Datei in verschiedene Formate verwendet. Sie können SVG in Ihrer C#-Anwendung buchstäblich mit einer einzigen Codezeile in PNG konvertieren!

Im folgenden Beispiel nehmen wir eine SVG-Datei in einem lokalen Dateisystem ( shapes.svg), konvertieren und speichern sie im lokalen Dateisystem.

1// Convert SVG to PNG using C#
2
3// Invoke the ConvertSVG() method for SVG to PNG conversion
4Converter.ConvertSVG(Path.Combine(DataDir, "shapes.svg"), new ImageSaveOptions(), Path.Combine(OutputDir, "convert-with-single-line.png"));

SVG in PNG konvertieren

Die Konvertierung einer Datei in ein anderes Format mit der Methode ConvertSVG() ist eine Abfolge von Operationen, darunter das Laden und Speichern von Dokumenten. Im folgenden Beispiel erstellen wir eine SVG-Datei aus dem Code.

  1. Bereiten Sie den Code für ein SVG-Dokument vor.
  2. Erstellen Sie ein neues ImageSaveOptions-Objekt. Die Eigenschaft Format ist standardmäßig PNG.
  3. Verwenden Sie die Methode ConvertSVG(content, baseUri, options, outputPath) der Klasse Converter, um SVG als PNG-Bild zu speichern.

Bitte werfen Sie einen Blick auf das folgende C#-Code-Snippet, das den Prozess der Umwandlung von SVG in PNG mit Aspose.HTML for .NET zeigt.

 1// Convert SVG to PNG in C#
 2
 3// Prepare SVG code
 4string code = "<svg xmlns='http://www.w3.org/2000/svg'>" +
 5              "<circle cx ='100' cy ='100' r ='60' fill='none' stroke='red' stroke-width='10' />" +
 6              "</svg>";
 7
 8// Prepare a path to save the converted file
 9string savePath = Path.Combine(OutputDir, "circle.png");
10
11// Create an instance of the ImageSaveOptions class
12ImageSaveOptions options = new ImageSaveOptions();
13
14// Convert SVG to PNG
15Converter.ConvertSVG(code, ".", options, savePath);

Sie können die vollständigen Beispiele und Datendateien von GitHub herunterladen.

Speicheroptionen – ImageSaveOptions

Aspose.HTML ermöglicht die Umwandlung von SVG in PNG unter Verwendung von Standard- oder benutzerdefinierten Speicheroptionen. die Verwendung von ImageSaveOptions ermöglicht es Ihnen, den Rendering-Prozess anzupassen. Sie können das Bildformat, die Seitengröße, die Ränder, die Hintergrundfarbe usw. angeben.

PropertyDescription
CompressionSets Tagged Image File Format (TIFF) Compression. By default, this property is LZW.
CSSGets a CssOptions object which is used for configuration of CSS properties processing.
FormatSets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG.
BackgroundColorThis property sets the color that will fill the background. By default, this property is Transparent.
PageSetupThis property gets a page setup object and uses it for configuration output page-set.
HorizontalResolutionSets horizontal resolution for output images in pixels per inch. The default value is 300 dpi.
VerticalResolutionSets vertical resolution for output images in pixels per inch. The default value is 300 dpi.
UseAntialiasingThis property sets the image rendering quality. Antialiasing is enabled by default.
TextGets a TextOptions object which is used for configuration of text rendering.

SVG in PNG konvertieren mit ImageSaveOptions

Um SVG in PNG zu konvertieren und dabei ImageSaveOptions anzugeben, sollten Sie einige Schritte befolgen:

  1. Laden Sie eine SVG-Datei mit einem der SVGDocument()-Konstruktoren der Klasse SVGDocument. ( flower1.svg).
  2. Erstellen Sie ein neues ImageSaveOptions-Objekt und geben Sie Speicheroptionen an. Die Eigenschaft Format ist standardmäßig PNG.
  3. Verwenden Sie die Methode ConvertSVG(), um SVG als PNG-Bild zu speichern. Sie müssen das SVGDocument, ImageSaveOptions und den Pfad der Ausgabedatei an die Methode ConvertSVG() übergeben, um SVG in PNG zu konvertieren.

Der folgende C#-Codeausschnitt zeigt, wie man SVG in PNG konvertiert, indem man benutzerdefinierte Speicheroptionen verwendet:

 1// Convert SVG to PNG in C# with custom settings
 2
 3// Prepare a path to a source SVG file
 4string documentPath = Path.Combine(DataDir, "flower1.svg");
 5
 6// Prepare a path to save the converted file
 7string savePath = Path.Combine(OutputDir, "flower-options.png");
 8
 9// Initialize an SVG document from the file
10using SVGDocument document = new SVGDocument(documentPath);
11
12// Create an instance of the ImageSaveOptions class. Set up the SmoothingMode, resolutions, and change the background color to AliceBlue 
13ImageSaveOptions options = new ImageSaveOptions()
14{
15    HorizontalResolution = 200,
16    VerticalResolution = 200,
17    BackgroundColor = System.Drawing.Color.AliceBlue,
18    UseAntialiasing = true,
19};
20
21// Convert SVG to PNG
22Converter.ConvertSVG(document, options, savePath);

Der Konstruktor ImageSaveOptions() initialisiert eine Instanz der ImageSaveOptions-Klasse, die an die Methode ConvertSVG() übergeben wird. Die Methode ConvertSVG() nimmt die Parameter document, options und den Pfad der Ausgabedatei savePath entgegen und führt die Konvertierung durch.

Im obigen Beispiel verwenden wir:

Verwenden Sie UseAntialiasing = true, wenn Sie die visuelle Qualität von gerenderten Formen, Text und Bildern in Ihrer Anwendung verbessern wollen, insbesondere wenn Klarheit und glatte Kanten wichtig sind. Durch die Aktivierung von Antialiasing werden gezackte Kanten geglättet, indem die Farben der Pixel um die Kanten herum gemischt werden, was zu einem weicheren, feineren Aussehen führt.

Während UseAntialiasing = true eine bessere visuelle Qualität bietet, kann es auch die Verarbeitungszeit erhöhen. Für Anwendungen, bei denen die Rendering-Geschwindigkeit eine Priorität ist, kann es optimal sein, UseAntialiasing = false zu setzen.

Die Abbildung zeigt das Fragment der Datei flower-options.png.

Text ““Blume” PNG-Bild”

Output-Stream-Anbieter

Wenn es erforderlich ist, Dateien in einem entfernten Speicher (z. B. Cloud, Datenbank usw.) zu speichern, können Sie die Schnittstelle ICreateStreamProvider implementieren, um die manuelle Kontrolle über den Dateierstellungsprozess zu haben. Diese Schnittstelle ist als Callback-Objekt konzipiert, um einen Stream zu Beginn des Dokuments/der Seite (je nach Ausgabeformat) zu erstellen und den früh erstellten Stream nach dem Rendern des Dokuments/der Seite freizugeben.

Aspose.HTML for .NET bietet verschiedene Arten von Ausgabeformaten für Rendering-Operationen. Einige dieser Formate erzeugen eine einzige Ausgabedatei (z. B. PDF, XPS), andere erzeugen mehrere Dateien (Bildformate - JPG, PNG, usw.).

Das folgende Beispiel zeigt, wie Sie Ihren eigenen MemoryStreamProvider in der Anwendung implementieren und verwenden können:

 1// Implement a custom MemoryStream provider for advanced control over HTML rendering output streams
 2
 3class MemoryStreamProvider : Aspose.Html.IO.ICreateStreamProvider
 4{
 5    // List of MemoryStream objects created during the document rendering
 6    public List<MemoryStream> Streams { get; } = new List<MemoryStream>();
 7
 8    public Stream GetStream(string name, string extension)
 9    {
10        // This method is called when only one output stream is required, for instance for XPS, PDF or TIFF formats
11        MemoryStream result = new MemoryStream();
12        Streams.Add(result);
13        return result;
14    }
15
16    public Stream GetStream(string name, string extension, int page)
17    {
18        // This method is called when the creation of multiple output streams are required. For instance, during the rendering HTML to list of image files (JPG, PNG, etc.)
19        MemoryStream result = new MemoryStream();
20        Streams.Add(result);
21        return result;
22    }
23
24    public void ReleaseStream(Stream stream)
25    {
26        // Here you can release the stream filled with data and, for instance, flush it to the hard-drive
27    }
28
29    public void Dispose()
30    {
31        // Releasing resources
32        foreach (MemoryStream stream in Streams)
33            stream.Dispose();
34    }
35}

Der folgende C#-Code zeigt, wie die MemoryStreamProvider-Klasse und die Aspose.HTML for .NET-Bibliothek verwendet werden, um SVG in PNG zu konvertieren und das Ergebnis in einer Datei zu speichern.

 1// Convert SVG to PNG in C# using memory stream
 2
 3// Create an instance of MemoryStreamProvider
 4using MemoryStreamProvider streamProvider = new MemoryStreamProvider();
 5
 6// Prepare SVG code
 7string code = "<svg xmlns='http://www.w3.org/2000/svg'>" +
 8              "<circle cx='50' cy='50' r='40' stroke='black' stroke-width='3' fill='red' />" +
 9              "</svg>";
10
11// Convert SVG to PNG using the MemoryStreamProvider
12Converter.ConvertSVG(code, ".", new ImageSaveOptions(), streamProvider);
13
14// Get access to the memory stream that contains the result data
15MemoryStream memory = streamProvider.Streams.First();
16memory.Seek(0, SeekOrigin.Begin);
17
18// Flush the result data to the output file
19using (FileStream fs = File.Create(Path.Combine(OutputDir, "stream-provider.png")))
20{
21    memory.CopyTo(fs);
22}

Um mehr über ImageSaveOptions zu erfahren, lesen Sie bitte den Artikel Feinabstimmung von Konvertern.

Überprüfen Sie die Qualität der Konvertierung von SVG in PNG mit unserem Online- SVG zu PNG Konverter. Laden Sie Ihre Dateien hoch, konvertieren Sie sie und erhalten Sie die Ergebnisse in wenigen Sekunden. Testen Sie unseren SVG zu PNG Konverter jetzt kostenlos!

Laden Sie die Bibliothek Aspose.HTML for .NET herunter, mit der Sie Ihre HTML-, MHTML-, EPUB-, SVG- und Markdown-Dokumente erfolgreich, schnell und einfach in die gängigsten Formate konvertieren können.

Sie können die vollständigen Beispiele und Datendateien von GitHub herunterladen.

Text “SVG zu PNG Konverter”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.