SVGZ in SVG umwandeln mit C#
Beim Arbeiten mit Vektorgrafiken sind Dateigröße und Kompatibilität häufig entscheidende Faktoren. SVGZ-Dateien sind GZIP-komprimierte Versionen von SVG-Dateien, die helfen, die Dateigröße zu verringern. Allerdings werden sie nicht von allen Tools oder Plattformen unterstützt. In diesem Artikel zeigen wir, wie Sie eine SVGZ-Datei mit Aspose.SVG for .NET in das Standardformat SVG konvertieren. Außerdem erfahren Sie, wie Sie den Vorgang automatisieren, indem Sie Verzeichnisse durchsuchen und mehrere SVGZ-Dateien stapelweise konvertieren. Diese Konvertierung ermöglicht es Entwicklern, mit unkomprimierten und editierbaren SVG-Dateien zu arbeiten.
Über das SVGZ-Dateiformat
SVGZ-Dateien sind GZIP-komprimierte Varianten von Standard-SVG-Dateien. Es handelt sich nicht um ein neues Format – sie verwenden lediglich den weit verbreiteten GZIP-Algorithmus, um die Dateigröße zu reduzieren. Da SVG-Dateien auf XML basieren, können sie sehr umfangreich sein, insbesondere bei komplexen Pfaden, Verläufen oder eingebetteten Stilen. Das macht sie besonders gut komprimierbar. Durch GZIP-Kompression kann die Größe einer SVG-Datei je nach Komplexität um 50–70 % reduziert werden. Dies ist besonders hilfreich für schnellere Ladezeiten und bessere Leistung in Webanwendungen, bei denen Dateigröße und Bandbreite entscheidend sind. Dateien mit der Erweiterung .svgz
zeigen an, dass sie komprimiert sind; unkomprimierte Dateien tragen weiterhin .svg
.
SVGZ-Dokument als SVG speichern
Die Aspose.SVG for .NET API bietet:
- die Klasse SVGDocument, die das Lesen und Laden von GZIP-komprimierten SVGZ-Dateien unterstützt.
- das Namespace Aspose.Svg.Saving, das API-Elemente zur Beschreibung von Speicheroptionen während der Konvertierung oder Speicherung enthält. Zum Beispiel legt die Enumeration SVGSaveFormat das Ausgabeformat fest – SVG oder SVGZ.
Der folgende Codeausschnitt zeigt eine einfache Einzeldateikonvertierung: Eine SVGZ-Datei wird von der Festplatte geladen und als unkomprimierte SVG-Datei gespeichert. Mit der Klasse SVGDocument
und SVGSaveFormat.SVG
gelingt das mit nur wenigen Codezeilen:
1using Aspose.Svg.Saving;
2using System.IO;
3...
4
5 // SVG-Dokument laden
6 SVGDocument document = new SVGDocument(Path.Combine(DataDir, "shapes.svgz"));
7
8 // Dokument als SVG speichern
9 document.Save(Path.Combine(OutputDir, "shapes.svg"), SVGSaveFormat.SVG);
Mehrere SVGZ-Dateien in SVG konvertieren
In der Praxis, insbesondere bei größeren Mengen an Ressourcen wie exportierter Grafik oder archivierten Webassets, kann es erforderlich sein, mehrere SVGZ-Dateien gleichzeitig zu konvertieren. In solchen Fällen lohnt sich die Automatisierung durch das Durchsuchen von Verzeichnissen und Stapelverarbeitung.
Das folgende Beispiel zeigt, wie man durch ein Verzeichnis iteriert, jede .svgz
-Datei lädt, in .svg
konvertiert und auftretende Fehler individuell behandelt, sodass der Prozess auch bei Problemen mit einzelnen Dateien weiterläuft:
1using Aspose.Svg.Saving;
2using System.IO;
3using System;
4...
5
6 // Alle .svgz-Dateien im Eingabeverzeichnis durchlaufen
7 foreach (string svgzFile in Directory.GetFiles(DataDir, "*.svgz"))
8 {
9 try
10 {
11 // Dateiname ohne Erweiterung extrahieren
12 string fileNameWithoutExt = Path.GetFileNameWithoutExtension(svgzFile);
13
14 // Ausgabepfad mit .svg-Erweiterung erstellen
15 string outputPath = Path.Combine(OutputDir, fileNameWithoutExt + ".svg");
16
17 // Komprimierte SVGZ-Datei laden
18 using (SVGDocument document = new SVGDocument(svgzFile))
19 {
20 // Als unkomprimierte SVG-Datei speichern
21 document.Save(outputPath, SVGSaveFormat.SVG);
22 }
23
24 // Erfolgreiche Konvertierung protokollieren
25 Console.WriteLine($"Converted: {fileNameWithoutExt}.svgz → {fileNameWithoutExt}.svg");
26 }
27 catch (Exception ex)
28 {
29 // Fehler bei der Konvertierung protokollieren
30 Console.WriteLine($"Failed to convert {svgzFile}: {ex.Message}");
31 }
32 }
SVGZ – Einschränkungen und Kompatibilität
Trotz ihrer Vorteile haben SVGZ-Dateien gewisse Einschränkungen:
- Nicht alle Anwendungen unterstützen das Lesen von SVGZ-Dateien.
- Bestimmte Build-Pipelines oder Bildprozessoren ignorieren oder behandeln sie falsch.
- Da SVGZ ein Binärformat ist, kann es nicht direkt im Texteditor geöffnet und bearbeitet werden.
- Falsch konfigurierte Server können zu doppelter Kompression oder fehlerhafter Auslieferung führen.
Daher konvertieren Entwickler SVGZ-Dateien häufig zurück in SVG, wenn sie die Grafik bearbeiten, Bibliotheken nutzen möchten, die keine komprimierten Dateien unterstützen, oder den SVG-Code direkt in HTML oder JavaScript einbetten wollen.
Gzip-Kompressionstechnologie
GZIP (GNU zip) ist eine verbreitete Kompressionstechnologie und ein dazugehöriges Datenformat. Wahrscheinlich haben Sie es schon häufiger verwendet, als Sie denken. Es wurde vom GNU-Projekt eingeführt und ist heute in
RFC 1952 standardisiert. GZIP findet man überall – von .gz
-Dateien bis hin zu Webservern, die HTML, CSS und JavaScript komprimieren, bevor sie an den Browser gesendet werden. Tools wie gzip
, gunzip
oder Bibliotheken wie zlib
unterstützen GZIP nativ.
Im Kern nutzt GZIP den DEFLATE-Algorithmus, der zwei Techniken kombiniert: LZ77 (Erkennung und Ersetzung wiederkehrender Muster) und Huffman-Codierung, um häufig genutzte Daten effizienter zu komprimieren. Diese Kombination sorgt für hohe Kompression bei vollständiger Wiederherstellbarkeit.
Ein entscheidender Vorteil ist, dass GZIP datenstrombasiert arbeitet – also Daten bereits während der Übertragung komprimieren kann. Das macht es ideal für Webanwendungen. Zudem ist GZIP verlustfrei – es gehen beim Dekomprimieren keine Daten verloren. Und das Beste: Es wird von nahezu allen modernen Browsern, Betriebssystemen und Programmiersprachen unterstützt.
Siehe auch
- SVG in SVGZ konvertieren in C# – Sie möchten die SVG-Datei im SVGZ mithilfe von Aspose.SVG for .NET programmieren.
- Was ist eine SVG-Datei? – Vorteile, Nachteile, XML-Code – Erfahren Sie mehr über das SVG-Format und seine Vorteile im Webdesign.
- SVG-Dokument speichern – Lernen Sie, wie Sie SVG-Dokumente in Dateien, ZIP-Archive, Streams oder URLs mit Aspose.SVG for .NET speichern.
- Gzip (Software)
Aspose.SVG bietet einen kostenlosen Online-SVG-Konverter, mit dem Sie SVG-Dateien in verschiedene Formate wie PDF, XPS, JPG, PNG, BMP, TIFF, GIF, WebP und SVGZ umwandeln können. Datei auswählen, Format wählen, fertig – schnell und kostenlos!