Bild in SVG in C# konvertieren – JPG, PNG, BMP, TIFF, GIF und ICO vektorisieren

Unter Vektorisierung versteht man die Umwandlung von Rasterbildern in Vektorgrafiken, die Elemente wie Bezierkurven, Splines und Linien verwenden. Der Prozess umfasst mindestens die Farbquantisierung, die Erkennung von Grenzen einfarbiger Formen und deren Annäherung durch Bezier-Kurven oder Polygone sowie die Verbesserung der Pfadqualität durch Rauschunterdrückung. Das Ergebnis wird in einem Vektorbildformat, z. B. einer SVG-Datei, gespeichert.

Aspose.SVG for .NET bietet zwei leistungsstarke Ansätze zur Konvertierung von Rasterbildern in das SVG-Format durch Vektorisierung:

Dieser Artikel behandelt die grundlegenden Konzepte und praktischen Beispiele für die Konvertierung von Rasterbildern wie JPG, PNG, BMP, TIFF, GIF und ICO in SVG unter Verwendung der Methoden Converter.ConvertImageToSVG().

Weitere Informationen über die Konvertierung von Bildern in Vektorgrafiken mithilfe der ImageVectorization API finden Sie im Kapitel Bild- und Textvektorisierung. Sie finden dort eine Beschreibung des Bildvektorisierungsprozesses, die Verwendung von Vektorisierungsalgorithmen und -parametern sowie C#-Beispiele für die Verwendung der Vectorize() Methoden.

Bild in SVG konvertieren

Die Konvertierung von Rasterbildern in SVG ermöglicht skalierbare, auflösungsunabhängige Grafiken, die bei jeder Größe scharf bleiben, was sie ideal für Webdesign und andere Anwendungen macht. Das folgende Beispiel zeigt, wie ein PNG-Rasterbild mit der Methode ConvertImageToSVG() in SVG konvertiert werden kann:

Fügen Sie die folgenden Namespaces hinzu:

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Converters;
4using Aspose.Svg.ImageVectorization;

C# code for image to SVG conversion:

 1// Convert Image to SVG using C#
 2
 3// Prepare paths for a source image file and output SVG file
 4string imageFile = Path.Combine(DataDir, "flower-pink.png");
 5string outputFile = Path.Combine(OutputDir, "flower-pink.svg");
 6
 7// Create a configuration object
 8ImageVectorizerConfiguration configuration = new ImageVectorizerConfiguration
 9{
10    PathBuilder =
11                new BezierPathBuilder
12                {
13                    TraceSmoother = new ImageTraceSmoother(3),
14                    ErrorThreshold = 5,
15                    MaxIterations = 5
16                },
17    ColorsLimit = 15,
18    LineWidth = 2
19};
20
21// Convert Image to SVG
22Converter.ConvertImageToSVG(configuration, imageFile, outputFile);

Die Abbildung zeigt das Ergebnis der Bildvektorisierung: a) ursprüngliches PNG-Bild; b) resultierendes SVG:

Text “Das Ergebnis der Konvertierung eines Bildes in SVG – das ursprüngliche PNG-Bild (a) und das konvertierte SVG-Bild (b) “

Vektorisierungsoptionen

Um optimale Ergebnisse zu erzielen, können Sie mit verschiedenen Konfigurationsoptionen experimentieren. Eine niedrigere Farbgrenze und eine höhere Glättung erzeugen beispielsweise ein abstrakteres und stilisierteres Bild, während höhere Genauigkeitseinstellungen mehr Details auf Kosten der Komplexität erhalten.

Einige Eigenschaften der Klasse ImageVectorizerConfiguration:

Eigenschaften der Klasse BezierPathBuilder:

Bild von Stream in SVG konvertieren

Aspose.SVG for .NET unterstützt sowohl dateibasierte als auch streambasierte Workflows und ist damit flexibel für Desktop-, Web- und serviceorientierte Anwendungen. Das folgende Beispiel zeigt, wie die Methode ConvertImageToSVG(configuration, inputStream, outputFile) für die Umwandlung von JPG in SVG angewendet wird:

 1// Convert raster image JPG to vector SVG using C#
 2
 3// Prepare input and output
 4string imagePath = Path.Combine(DataDir, "tulip.jpg");
 5string outputFile = Path.Combine(OutputDir, "tulip.svg");
 6
 7// Open the image as a FileStream
 8using (FileStream inputStream = new FileStream(imagePath, FileMode.Open, FileAccess.Read))
 9{
10    // Create vectorization configuration
11    ImageVectorizerConfiguration configuration = new ImageVectorizerConfiguration
12    {
13        PathBuilder = new BezierPathBuilder
14        {
15            TraceSmoother = new ImageTraceSmoother(1),
16            ErrorThreshold = 10,
17            MaxIterations = 1
18        },
19        ColorsLimit = 30,
20        LineWidth = 1
21    };
22
23    // Perform conversion from image stream to SVG
24    Converter.ConvertImageToSVG(configuration, inputStream, outputFile);
25}
26
27Console.WriteLine("Image converted to SVG successfully.");

Die Abbildung zeigt das Ergebnis der Bildvektorisierung: a) ursprüngliches JPG-Bild; b) resultierendes SVG:

Text “Das Ergebnis der Konvertierung eines Bildes in SVG – das ursprüngliche JPG-Bild (a) und das konvertierte SVG-Bild (b) “

Schlussfolgerungen und Empfehlungen

  1. Verwenden Sie die Methode ConvertImageToSVG() für die schnelle Umwandlung von Bildern in SVG mit einer benutzerdefinierten Einstellung.
  2. Beachten Sie die folgenden Empfehlungen, um die besten Ergebnisse und Leistungen zu erzielen:
  1. Verwenden Sie bei der Verarbeitung von hochgeladenen Dateien, In-Memory-Bildern oder Cloud-Daten eine streambasierte Eingabe – dies vermeidet temporäre Dateien und verbessert die Leistung.
  2. Für große Datensätze können Sie eine Schleife zur Stapelkonvertierung von Bildern mit Fehlerbehandlung und Protokollierung erstellen.
  3. Öffnen Sie die resultierenden SVGs immer in einem Browser oder einem Vektor-Editor, um die Qualität zu überprüfen.

Siehe auch

Aspose.SVG bietet einen kostenlosen Online- Image zu SVG Konverter, der auf jeder Plattform funktioniert und eine genaue und effiziente Konvertierung ermöglicht. Mit dieser Anwendung können Sie eine Reihe von Optionen anwenden, um das perfekte Ergebnis zu erzielen. Sparen Sie Ihre Zeit und testen Sie diesen kostenlosen Image zu SVG Konverter, um alle Vorteile von Vektorgrafiken zu nutzen!

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.