Convertir SVGZ en SVG en C#

Lorsqu’on travaille avec des graphiques vectoriels, la taille des fichiers et la compatibilité sont souvent des préoccupations majeures. Les fichiers SVGZ sont des versions compressées avec GZIP des fichiers SVG, ce qui permet de réduire leur taille. Cependant, toutes les plateformes et tous les outils ne les prennent pas en charge. Dans cet article, nous vous montrons comment convertir un fichier SVGZ en un format SVG standard à l’aide de Aspose.SVG for .NET. Vous apprendrez également à automatiser le processus en parcourant des dossiers pour convertir plusieurs fichiers SVGZ par lots. Cette conversion permet aux développeurs de travailler avec du contenu SVG non compressé et modifiable.

À propos du format SVGZ

Les fichiers SVGZ sont des versions SVG standard compressées avec GZIP. Ce n’est pas un format différent : ils utilisent simplement l’algorithme GZIP, très répandu, pour réduire la taille des fichiers SVG. Les fichiers SVG étant basés sur XML, ils peuvent devenir assez volumineux, notamment s’ils contiennent des chemins complexes, des dégradés ou des styles intégrés. Cela les rend très compressibles. Grâce à la compression GZIP, la taille d’un fichier SVG peut être réduite de 50 à 70 %, selon sa complexité. Cette compression est particulièrement utile pour accélérer le chargement et améliorer les performances des applications web où la taille et la bande passante sont critiques. Les fichiers avec l’extension .svgz indiquent qu’ils sont compressés, tandis que les fichiers non compressés conservent l’extension .svg.

Enregistrer un document SVGZ en SVG

L’API Aspose.SVG for .NET fournit:

L’exemple ci-dessous montre une conversion simple d’un fichier unique : un document SVGZ est chargé depuis le disque et enregistré comme fichier SVG non compressé. Avec la classe SVGDocument et l’option SVGSaveFormat.SVG, cela se fait en quelques lignes de code:

1using Aspose.Svg.Saving;
2using System.IO;
3...
4
5    // Charger un document SVG
6	SVGDocument document = new SVGDocument(Path.Combine(DataDir, "shapes.svgz"));
7	
8	// Enregistrer le document en tant que SVG
9	document.Save(Path.Combine(OutputDir, "shapes.svg"), SVGSaveFormat.SVG);

Convertir plusieurs fichiers SVGZ en SVG

Dans des scénarios réels, en particulier lorsqu’on travaille avec de grandes quantités de ressources comme des images exportées ou des archives, il peut être nécessaire de convertir plusieurs fichiers SVGZ à la fois. Dans ces cas-là, l’automatisation du processus via la lecture de dossiers et la conversion par lots est beaucoup plus efficace.

L’exemple suivant montre comment parcourir un dossier, convertir chaque fichier .svgz en .svg, et gérer les erreurs fichier par fichier pour que la conversion continue même si certains échouent:

 1using Aspose.Svg.Saving;
 2using System.IO;
 3using System;
 4...
 5
 6	// Parcourir tous les fichiers .svgz dans le répertoire source
 7	foreach (string svgzFile in Directory.GetFiles(DataDir, "*.svgz"))
 8	{
 9		try
10		{
11			// Extraire le nom de fichier sans extension
12			string fileNameWithoutExt = Path.GetFileNameWithoutExtension(svgzFile);
13
14			// Créer le chemin de sortie avec extension .svg
15			string outputPath = Path.Combine(OutputDir, fileNameWithoutExt + ".svg");
16
17			// Charger le fichier SVGZ compressé
18			using (SVGDocument document = new SVGDocument(svgzFile))
19			{
20				// Enregistrer en tant que fichier SVG non compressé
21				document.Save(outputPath, SVGSaveFormat.SVG);
22			}
23
24			// Journaliser la conversion réussie
25			Console.WriteLine($"Converted: {fileNameWithoutExt}.svgz → {fileNameWithoutExt}.svg");
26		}
27		catch (Exception ex)
28		{
29			// Journaliser toute erreur survenue lors de la conversion
30			Console.WriteLine($"Failed to convert {svgzFile}: {ex.Message}");
31		}
32	}

SVGZ – Limitations et compatibilité

Bien que les fichiers SVGZ soient utiles, gardez à l’esprit les limitations suivantes:

C’est pourquoi les développeurs préfèrent souvent convertir les fichiers SVGZ en SVG standard lorsqu’ils souhaitent modifier le graphique, utiliser des bibliothèques qui ne prennent pas en charge les entrées compressées ou intégrer le code SVG directement dans le HTML ou le JavaScript.

Technologie de compression Gzip

GZIP (GNU zip) est une technologie de compression largement utilisée et un format de données associé. Vous l’avez probablement déjà utilisée sans le savoir. Créée par le projet GNU, elle est aujourd’hui standardisée dans la RFC 1952. On la retrouve partout : fichiers .gz, serveurs web qui compressent HTML, CSS, JavaScript avant de les envoyer, etc. GZIP est intégré dans des outils comme gzip, gunzip et des bibliothèques telles que zlib.

GZIP repose sur l’algorithme DEFLATE, qui combine deux techniques : LZ77, qui identifie et remplace les motifs répétés, et le codage de Huffman, qui compresse davantage les données les plus fréquentes. Cette combinaison permet une compression efficace et sans perte.

Un avantage clé de GZIP est sa capacité à fonctionner en flux continu (streaming), ce qui permet de compresser les données à la volée pendant la transmission. Cela en fait un choix idéal pour les applications web. De plus, étant sans perte, GZIP garantit que les données décompressées sont identiques à l’original. Enfin, sa compatibilité est quasi universelle : navigateurs, systèmes d’exploitation et langages de programmation le prennent en charge.

Voir aussi

Aspose.SVG propose un Convertisseur SVG en ligne gratuit pour convertir vos fichiers SVG vers plusieurs formats populaires, notamment PDF, XPS, JPG, PNG, BMP, TIFF, GIF, WebP et SVGZ. Sélectionnez simplement un fichier, choisissez un format et convertissez-le. Rapide et 100 % gratuit!

Texte “Convertisseur SVG”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.