Wann immer Transparenz in Bildern im Internet benötigt wird, ist PNG eines der Formate, die einem in den Sinn kommen. SVG-Bild ist aufgrund seiner Skalierbarkeit auch eines der am häufigsten verwendeten Bildformate. Für die Anzeige kleiner statischer Bilder, Logos und für Bilder mit transparentem Hintergrund werden PNG-Bilder oft bevorzugt. Aus Gründen der Kompatibilität oder aus anderen Gründen ist es oft erforderlich, SVG-Vektorgrafiken in andere Formate zu konvertieren. In diesem Artikel wird erläutert, wie Sie SVG-Vektorgrafiken mithilfe von C# in PNG-Bilder konvertieren.

Konvertieren Sie SVG in PNG mit C# (Graustufen, Drehen, Spiegeln, Helles Wasserzeichen)

.NET-API zum Konvertieren von Bildern

GroupDocs ermöglicht Entwicklern mit seiner Conversion API, Bildformate in verschiedene andere Formate zu konvertieren. Das konvertierte Bild kann auch während des Konvertierungsprozesses geändert werden, indem verschiedene erweiterte Optionen verwendet werden. In diesem Artikel werde ich dessen GroupDocs.Conversion for .NET verwenden, um das SVG-Vektorbild in PNG-Bilder zu konvertieren.

Sie können die DLLs oder das MSI-Installationsprogramm aus dem Downloadbereich herunterladen oder die API installieren, indem Sie ihr Paket über NuGet zu Ihrer .NET-Anwendung hinzufügen.

PM> Install-Package GroupDocs.Conversion

Laufende Beispiele für seine Funktionen sind auch auf GitHub verfügbar. Weitere Informationen finden Sie in der Dokumentation und API-Referenz.

Konvertieren Sie SVG in PNG-Bild mit C#

Beginnen wir mit der Konvertierung von Vektorgrafiken in das PNG-Format mit den Standardeinstellungen. Die folgenden Schritte zeigen, wie Sie das SVG-Bild mit C# in PNG konvertieren.

  • Laden Sie die SVG-Datei mit der Klasse Converter.
  • Bereiten Sie die Bildkonvertierungsoptionen vor.
  • Legen Sie den Konvertierungsdateityp als PNG fest.
  • Rufen Sie die Methode Convert() mit vorbereiteten Optionen auf.

Der folgende C#-Quellcode konvertiert das SVG in ein PNG-Bild.

// So konvertieren Sie eine SVG-Datei in das PNG-Format in C# mithilfe der .NET-Konvertierungs-API mit Standardoptionen
using (Converter converter = new Converter("path/vector-graphics.svg"))
{
    ImageConvertOptions options = new ImageConvertOptions
    {
        Format = ImageFileType.Png
    };
    converter.Convert("path/svg-to-png.png", options);
}

SVG zu PNG-Bild mit erweiterten Optionen mit C#

Während der Konvertierung der Vektorgrafiken können verschiedene Anpassungen auf die PNG-Ausgabe angewendet werden. Hier sind einige der PNG-Bildfunktionen, die wir anpassen können:

  • Helligkeit
  • Kontrast
  • Gamma
  • Graustufen
  • Flip-Modus (horizontal / vertikal)
  • Rotationswinkel
  • Höhe
  • Breite
  • Wasserzeichen

Die folgenden Schritte zeigen, wie Sie ein SVG-Bild in PNG konvertieren und weitere Anpassungen an der resultierenden PNG-Datei vornehmen.

  • Laden Sie die SVG-Grafik mit der Klasse Converter.
  • Bereiten Sie die Bildkonvertierungsoptionen vor.
  • Legen Sie den Konvertierungsdateityp als PNG fest.
  • Definieren Sie die selektiven Anpassungen und passen Sie ihre Werte an.
  • Konvertieren Sie mithilfe der Convert()-Methode mit vorbereiteten Optionen in ein PNG-Bild.

Der folgende Quellcode wendet die Anpassung bei der SVG-zu-PNG-Konvertierung mit C# an. Sie können jeden dieser Effekte oder eine Kombination von Effekten für die gewünschte PNG-Ausgabe anwenden.

// Konvertieren Sie die SVG-Datei in C# mithilfe verschiedener Anpassungen in das PNG-Format
using (Converter converter = new Converter("path/vector-graphics.svg"))
{
    ImageConvertOptions options = new ImageConvertOptions
    {
        Format = ImageFileType.Png,
        FlipMode = ImageFlipModes.FlipY,
        RotateAngle = 45, 
        Grayscale = true
        /*
        Brightness = 50,
        Contrast = 50,
        Gamma = 0.5F,
        */
    };
    // Anwenden von Wasserzeichen auf das konvertierte Bild
    WatermarkOptions watermark = new WatermarkTextOptions("Watermark")
    {
        Color = Color.Blue,
        Width = 150,
        Height = 150,
        Background = false,
        Top = 50,
        Left = 50,
        RotationAngle = -45,
        Transparency = 50,
    };
    options.Watermark = watermark;
    
    converter.Convert("path/svg-to-png-customized.png", options);
}

Holen Sie sich eine kostenlose API-Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die API ohne die Evaluierungseinschränkungen zu verwenden.

Fazit

Lassen Sie uns schließen. Wir haben die Grundlagen und die etwas fortgeschrittene Konvertierung von SVG-Vektorgrafiken in das PNG-Format mit C# in .NET-Anwendungen gelernt. Wir haben außerdem gelernt, wie man SVG-Dateien dreht, kippt oder Wasserzeichen hinzufügt, wenn sie in das PNG-Format konvertiert werden. Außerdem haben wir gelernt, Gamma und Helligkeit fein abzustimmen und die Graustufenoptionen ein- und auszuschalten.

Versuchen Sie, Beispiele von GitHub auszuführen, die Ihnen helfen, Ihren eigenen SVG-zu-PNG-Konverter zu erstellen, ähnlich dem unter groupdocs.app verfügbaren. Kontaktieren Sie uns bei Fragen über das Forum.

Siehe auch