Convertir SVGZ a SVG en C#

Al trabajar con gráficos vectoriales, el tamaño de archivo y la compatibilidad suelen ser aspectos clave. Los archivos SVGZ son versiones comprimidas con GZIP de archivos SVG, lo que ayuda a reducir su tamaño. Sin embargo, no todas las herramientas o plataformas los admiten. En este artículo, se muestra cómo convertir un archivo SVGZ a formato SVG estándar utilizando Aspose.SVG for .NET. Además, aprenderá a automatizar el proceso escaneando directorios y convirtiendo múltiples archivos SVGZ por lotes. Esta conversión permite a los desarrolladores trabajar con contenido SVG sin comprimir y editable.

Acerca del formato de archivo SVGZ

Los archivos SVGZ son versiones comprimidas con GZIP de archivos SVG estándar. No se trata de un formato diferente: simplemente utilizan el algoritmo GZIP, ampliamente usado, para reducir el tamaño del archivo SVG. Dado que los archivos SVG están basados en XML, pueden ser bastante extensos, especialmente si contienen rutas complejas, degradados o estilos en línea. Esto los hace altamente comprimibles. Aplicando compresión GZIP, un archivo SVG puede reducirse en tamaño entre un 50 y un 70 %, dependiendo de su complejidad. Esta compresión es especialmente útil para reducir los tiempos de carga y mejorar el rendimiento en aplicaciones web donde el tamaño y el ancho de banda son críticos. Los archivos con la extensión .svgz indican que están comprimidos, mientras que la versión sin comprimir conserva la extensión .svg.

Guardar un documento SVGZ como SVG

La API Aspose.SVG for .NET ofrece:

El siguiente fragmento de código muestra un proceso simple para convertir un único archivo: se carga un documento SVGZ desde el disco y se guarda como archivo SVG sin comprimir. Usando la clase SVGDocument y el valor SVGSaveFormat.SVG, puede hacerlo en solo unas líneas de código:

1using Aspose.Svg.Saving;
2using System.IO;
3...
4
5    // Cargar un documento SVG
6	SVGDocument document = new SVGDocument(Path.Combine(DataDir, "shapes.svgz"));
7	
8	// Guardar el documento como SVG
9	document.Save(Path.Combine(OutputDir, "shapes.svg"), SVGSaveFormat.SVG);

Convertir múltiples archivos SVGZ a SVG

En situaciones reales, especialmente al trabajar con grandes cantidades de archivos como gráficos exportados o recursos archivados, puede ser necesario convertir varios archivos SVGZ a la vez. En estos casos, automatizar el proceso escaneando directorios y realizando conversiones por lotes es más eficiente.

El siguiente ejemplo muestra cómo recorrer una carpeta, convertir cada archivo .svgz a .svg y manejar errores individuales para que el proceso continúe incluso si algunos archivos fallan:

 1using Aspose.Svg.Saving;
 2using System.IO;
 3using System;
 4...
 5
 6	// Recorrer todos los archivos .svgz del directorio de entrada
 7	foreach (string svgzFile in Directory.GetFiles(DataDir, "*.svgz"))
 8	{
 9		try
10		{
11			// Obtener el nombre del archivo sin extensión
12			string fileNameWithoutExt = Path.GetFileNameWithoutExtension(svgzFile);
13
14			// Construir la ruta de salida con extensión .svg
15			string outputPath = Path.Combine(OutputDir, fileNameWithoutExt + ".svg");
16
17			// Cargar el archivo SVGZ comprimido
18			using (SVGDocument document = new SVGDocument(svgzFile))
19			{
20				// Guardar como archivo SVG sin comprimir
21				document.Save(outputPath, SVGSaveFormat.SVG);
22			}
23
24			// Registrar la conversión exitosa
25			Console.WriteLine($"Converted: {fileNameWithoutExt}.svgz → {fileNameWithoutExt}.svg");
26		}
27		catch (Exception ex)
28		{
29			// Registrar errores que ocurrieron durante la conversión
30			Console.WriteLine($"Failed to convert {svgzFile}: {ex.Message}");
31		}
32	}

SVGZ – Limitaciones y compatibilidad

Aunque los archivos SVGZ ofrecen muchas ventajas, es importante tener en cuenta lo siguiente:

Por estas razones, los desarrolladores suelen convertir archivos SVGZ de nuevo a SVG estándar cuando necesitan editar los gráficos, trabajar con bibliotecas que no admiten entrada comprimida o incrustar SVG directamente en HTML o JavaScript como código en línea.

Tecnología de compresión GZIP

GZIP (GNU zip) es una tecnología de compresión ampliamente utilizada y un formato de datos comprimido. Probablemente ya lo haya utilizado más veces de las que cree. Fue introducido por el Proyecto GNU y está estandarizado en el RFC 1952. GZIP está presente en todas partes, desde archivos con extensión .gz hasta servidores web que lo usan para reducir el tamaño de HTML, CSS y JavaScript antes de enviarlos al navegador. Está integrado en herramientas como gzip, gunzip y bibliotecas como zlib.

GZIP se basa en el algoritmo DEFLATE, que combina dos técnicas: LZ77, que identifica patrones repetidos y los reemplaza con referencias, y Codificación de Huffman, que comprime los datos más frecuentes. Esta combinación permite una compresión eficiente sin pérdida de datos.

Una ventaja clave de GZIP es que es de tipo “streaming”, lo que significa que puede comprimir datos mientras se están enviando o recibiendo, ideal para aplicaciones web. Además, al ser un formato sin pérdidas, garantiza que los datos originales se restauran completamente tras la descompresión. GZIP es ampliamente compatible: navegadores, sistemas operativos y lenguajes de programación lo admiten de forma nativa.

Véase también

Aspose.SVG ofrece un Convertidor SVG en línea gratuito para convertir archivos SVG a varios formatos populares. Puede convertir fácilmente SVG a PDF, XPS, JPG, PNG, BMP, TIFF, GIF, WebP y SVGZ. Solo seleccione un archivo, elija el formato y listo. ¡Rápido y completamente gratis!

Texto “Convertidor SVG en línea”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.