Vector SVG (.svg)

W3C Estándar

Scalable Vector Graphics (SVG) es un formato de imagen vectorial basado en XML para gráficos bidimensionales que admite interactividad, estilos CSS y animación.

Convertir de SVG a PNG

Convertidor gratuito de SVG a PNG en el navegador. Convierte archivos al instante en tu dispositivo.

Comprimir SVG en línea

Privado - los archivos nunca salen de tu dispositivo

Inspección y metadatos

Los sistemas operativos y analizadores de archivos identifican los archivos de SVG inspeccionando la secuencia de bytes binarios inicial:

Selecciona o arrastra archivos aquí

Privado - los archivos nunca salen de tu dispositivo

o pega Ctrl+V
Garantía de privacidad sin transmisión de red: 0 bytes subidos a servidores externos. Todo el procesamiento se realizó de forma local en el entorno seguro de tu navegador.

Firma de cabecera a nivel de bytes (bytes mágicos)

Los sistemas operativos y analizadores de archivos identifican los archivos de SVG inspeccionando la secuencia de bytes binarios inicial:

FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):

3C 73 76 67

REPRESENTACIÓN ASCII: <svg

Estandarización: W3C Recommendation (SVG 1.1 / SVG 2)

Especificaciones técnicas

Arquitectura del contenedorDocumento de marcado de texto basado en XML que define geometrías vectoriales 2D
CompresiónCompresión de texto con Gzip o Brotli (SVGZ usa Gzip)
Orden de bytes (Endianness)No se aplica (flujo de caracteres de texto UTF-8/UTF-16)
Espacios de colorsRGB, CSS Color Module 4 (Display P3, lab, lch)
Canales y estructuraFormas vectoriales de resolución ilimitada, curvas de Bézier, tipografía y máscaras de opacidad
Dimensiones máximasIndependiente de la resolución: se escala a cualquier tamaño de pantalla sin pixelarse
TransparenciaTransparencia alfa variable y modos de fusión CSS
Streaming y progresivoEl analizador XML del navegador admite el análisis progresivo del flujo de texto

Matriz de comparación técnica: SVG frente a la competencia

Atributo técnicoSVG (Actual)HTML5 CanvasPDFPNG
Modelo de renderizadoDOM vectorial de modo retenidoLienzo de mapa de bits de modo inmediatoContenedor de página fija de modo retenidoCuadrícula de píxeles ráster
Estilos y CSSPermite aplicar estilos mediante clases y variables CSSRequiere redibujar mediante la API Canvas de JavaScriptSin estilos CSS dinámicosPíxeles ráster fijos
Escalabilidad infinitaSí (curvas vectoriales matemáticas)Requiere ajustar la resolución manualmenteSí (elementos vectoriales)No (se pixela al ampliar)
InteractividadEventos DOM nativos (pasar el cursor, hacer clic y animar)Requiere calcular manualmente la detección de colisionesDocumento estáticoRequiere mapa de imagen o lienzo

Modos de corrupción comunes y guía de recuperación hexadecimal

El navegador muestra un error de análisis XML: etiqueta sin cerrar o etiqueta de apertura y cierre no coincidentes.

Causa raíz: Sintaxis XML mal formada, etiquetas de cierre ausentes o signos «&» sin escapar (se necesita «&amp;»).

Recuperación: Valida el archivo con un analizador XML (xmllint file.svg) y corrija las etiquetas que no estén equilibradas.

Análisis de seguridad y vectores de ataque al analizador

SVG es XML ejecutable compatible con etiquetas <script> y entidades externas. Mostrar archivos SVG no confiables puede exponer a riesgos importantes de XSS y SSRF.

Vectores de ataque conocidos

  • Ataques XSS almacenados mediante etiquetas <script> incrustadas o controladores de eventos onload=.
  • Ataques de entidades externas XML (XXE) que leen archivos locales del servidor cuando este analiza el archivo.
  • La expansión de entidades XML «Billion Laughs» provoca una denegación de servicio.

Mejores prácticas defensivas: Sanea siempre los archivos SVG con DOMPurify antes de incrustarlos. También puede servirlos con «Content-Security-Policy: default-src none» o mediante etiquetas <img>, que desactivan automáticamente los scripts.

Orígenes históricos e hitos

2018La recomendación candidata SVG 2 del W3C incorpora estilos CSS modernos.
2011SVG 1.1 (segunda edición) normaliza la compatibilidad con navegadores móviles y de escritorio.
2001El W3C publica la especificación SVG 1.0, desarrollada a partir de las propuestas VML y PGML.

Ventajas principales

  • No depende de la resolución: mantiene líneas y tipografía nítidas en cualquier pantalla o tamaño de impresión.
  • Archivos muy pequeños para logotipos, iconos y elementos de interfaz.
  • Se puede programar y aplicar estilos por completo con CSS y JavaScript en el DOM del navegador.

Limitaciones técnicas

  • No es adecuado para fotografías ni para imágenes complejas de tonos continuos.
  • Las rutas vectoriales complejas con miles de nodos pueden ralentizar la representación en la CPU y consumir mucha batería.
  • Al estar basado en XML, puede incluir scripts; antes de mostrar archivos no confiables, hay que sanearlos de forma estricta.

Curiosidades técnicas interesantes

  • Como SVG es texto XML sin formato, comprimirlo con Gzip (para crear un archivo .svgz) suele reducir su tamaño entra un 70 % y un 80 %.
  • El atributo viewBox define un lienzo de coordenadas abstracto que se asigna dinámicamente a los píxeles físicos de la pantalla.
  • Al principio, los navegadores web no tenían motores SVG nativos. Por ello, Adobe distribuyó el complemento Adobe SVG Viewer hasta que la compatibilidad nativa se consolidó, alrededor de 2011.

Preguntas técnicas frecuentes

¿Pueden los archivos SVG contener código malicioso?

Sí. Al ser XML válido, SVG puede contener JavaScript incrustado (<script>), que se ejecuta si el archivo se carga directamente en un navegador o se abre dentro de un elemento <svg>. Servir archivos SVG con una etiqueta <img> neutraliza la ejecución de scripts.

¿Cuándo debo usar SVG en lugar de PNG?

Usa SVG para iconos, logotipos, gráficos, ilustraciones y tipografía cuando necesite que se vean nítidos a cualquier tamaño y ocupen poco. Para fotografías, usa PNG o WebP.

¿Cómo puedo optimizar archivos SVG grandes o complejos?

Puedes limpiar las rutas vectoriales y reducir su tamaño eliminando metadatos redundantes, comentarios de editores (como Inkscape o Illustrator), grupos invisibles y declaraciones de espacios de nombres sin usar. Para ello, usa herramientas como SVGO o comprime el archivo SVG.