Las imágenes SVG se definen en un formato de gráficos vectoriales y se almacenan en archivos de texto XML. De este modo, las imágenes SVG se pueden escalar en tamaño sin pérdida de calidad, y los archivos SVG se pueden buscar , indexar , codificar y comprimir . Los archivos de texto XML se pueden crear y editar con editores de texto o editores de gráficos vectoriales , y la mayoría de los navegadores web los representan . Si se utilizan para imágenes, los archivos SVG pueden alojar secuencias de comandos o CSS, lo que puede dar lugar a ataques de secuencias de comandos entre sitios u otras vulnerabilidades de seguridad.
Historia
SVG ha estado en desarrollo dentro del Consorcio World Wide Web (W3C) desde 1999 después de que se enviaran al consorcio seis propuestas competitivas para lenguajes de gráficos vectoriales durante 1998 (ver más abajo). [3]
El primer grupo de trabajo de SVG decidió no desarrollar ninguna de las propuestas comerciales, sino crear un nuevo lenguaje de marcado que estuviera basado en ninguna de ellas pero que no estuviera realmente basado en ellas. [3]
SVG fue desarrollado por el Grupo de Trabajo SVG del W3C a partir de 1998, después de que se recibieran seis propuestas de gráficos vectoriales en competencia ese año:
El grupo de trabajo estaba presidido en ese momento por Chris Lilley , del W3C.
La adopción temprana fue limitada debido a la falta de soporte en versiones anteriores de Internet Explorer. Sin embargo, a partir de 2011, todos los principales navegadores de escritorio comenzaron a admitir SVG. La compatibilidad nativa del navegador ofrece varias ventajas, como no requerir complementos, permitir que SVG se combine con otro contenido y mejorar la confiabilidad de la representación y la creación de scripts. La compatibilidad móvil con SVG existe en varias formas, con diferentes dispositivos y navegadores que admiten SVG Tiny 1.1 o 1.2. SVG se puede producir utilizando editores de gráficos vectoriales y renderizar en formatos rasterizados. En aplicaciones basadas en web, Inline SVG permite incrustar contenido SVG dentro de documentos HTML.
La especificación SVG se actualizó a la versión 1.1 en 2011. Scalable Vector Graphics 2 se convirtió en una recomendación candidata del W3C el 15 de septiembre de 2016. SVG 2 incorpora varias características nuevas además de las de SVG 1.1 y SVG Tiny 1.2. [9]
SVG 1.1 se convirtió en una recomendación del W3C el 14 de enero de 2003. [11] La especificación SVG 1.1 está modularizada para permitir que se definan subconjuntos como perfiles. Aparte de esto, hay muy poca diferencia entre SVG 1.1 y SVG 1.0.
SVG Tiny y SVG Basic (los perfiles SVG móviles) se convirtieron en recomendaciones del W3C el 14 de enero de 2003. Se describen como perfiles de SVG 1.1. [12]
SVG Tiny 1.2 se convirtió en una recomendación del W3C el 22 de diciembre de 2008. [13] Inicialmente se redactó como un perfil del SVG Full 1.2 planeado (que desde entonces se abandonó en favor de SVG 2), [14] pero luego se refactorizó como una especificación independiente. En general, no recibe mucho soporte.
SVG 1.1 Segunda Edición, que incluye todas las erratas y aclaraciones, pero no nuevas características del SVG 1.1 original, se lanzó el 16 de agosto de 2011. [15]
SVG Tiny 1.2 Portable/Secure, un subconjunto más seguro del perfil SVG Tiny 1.2 presentado como borrador de estándar de la IETF el 29 de julio de 2020. [16] También conocido como SVG Tiny P/S. SVG Tiny 1.2 Portable/Secure es un requisito del borrador de estándar BIMI . [17]
Versión 2
SVG 2 elimina o deja obsoletas algunas características de SVG 1.1 e incorpora nuevas características de HTML5 y Web Open Font Format : [18]
Por ejemplo, SVG 2 elimina varios elementos de fuente como glyphy altGlyph(reemplazados por el formato de fuente WOFF).
El xml:spaceatributo está obsoleto en favor de CSS.
Se han agregado características HTML5 como translatey atributos.data-*
Las características de manejo de texto de SVG Tiny 1.2 están anotadas para ser incluidas, pero aún no están formalizadas en el texto. [19] Se han seleccionado algunas otras características de 1.2, [18] pero SVG 2 no es un superconjunto de SVG Tiny 1.2 en general.
El SVG 2 alcanzó la etapa de recomendación de candidato el 15 de septiembre de 2016 [20] y las versiones revisadas se publicaron el 7 de agosto de 2018 y el 4 de octubre de 2018 [21]. El último borrador se publicó el 8 de marzo de 2023 [22].
Características
SVG admite interactividad, animación y amplias capacidades gráficas, lo que lo hace adecuado tanto para aplicaciones web como para aplicaciones de impresión. Las imágenes SVG se pueden comprimir con el algoritmo gzip , lo que da como resultado archivos SVGZ que suelen ser entre un 20 y un 50 % más pequeños que el original. SVG también admite metadatos, lo que permite una mejor indexación, búsqueda y recuperación de contenido SVG.
Aunque la especificación SVG se centra principalmente en el lenguaje de marcado de gráficos vectoriales , su diseño incluye las capacidades básicas de un lenguaje de descripción de páginas como PDF de Adobe . Contiene disposiciones para gráficos enriquecidos y es compatible con CSS para fines de estilo. SVG tiene la información necesaria para colocar cada glifo e imagen en una ubicación elegida en una página impresa. [23]
Guion y animación
Los dibujos SVG pueden ser dinámicos e interactivos. Las modificaciones de los elementos en función del tiempo se pueden describir en SMIL o se pueden programar en un lenguaje de programación (por ejemplo, JavaScript ). El W3C recomienda explícitamente SMIL como estándar para la animación en SVG. [24]
Se puede asignar un amplio conjunto de controladores de eventos, como "onmouseover" y "onclick", a cualquier objeto gráfico SVG para aplicar acciones y eventos.
Perfiles móviles
Debido a la demanda de la industria, se introdujeron dos perfiles móviles con SVG 1.1: SVG Tiny (SVGT) y SVG Basic (SVGB).
Se trata de subconjuntos del estándar SVG completo, destinados principalmente a agentes de usuario con capacidades limitadas. En particular, SVG Tiny se definió para dispositivos móviles con grandes restricciones, como los teléfonos móviles ; no admite estilos ni scripts. [25] SVG Basic se definió para dispositivos móviles de nivel superior, como los teléfonos inteligentes .
En 2003, el 3GPP , un grupo de estándares internacionales de telecomunicaciones, adoptó SVG Tiny como el formato multimedia de gráficos vectoriales obligatorio para los teléfonos de próxima generación. SVGT es el formato de gráficos vectoriales obligatorio y el soporte de SVGB es opcional para el Servicio de Mensajería Multimedia (MMS) y el Servicio de Transmisión por Conmutación de Paquetes. [26] [27] [28] Más tarde [ ¿cuándo? ] se agregó como formato obligatorio para gráficos vectoriales en el Subsistema Multimedia IP (IMS) del 3GPP. [29] [30]
Ninguno de los perfiles móviles incluye soporte para el Modelo de Objeto de Documento (DOM) completo, mientras que solo SVG Basic tiene soporte opcional para scripts, pero debido a que son subconjuntos totalmente compatibles del estándar completo, la mayoría de los gráficos SVG aún pueden ser renderizados por dispositivos que solo admiten los perfiles móviles. [31]
SVGT 1.2 agrega un microDOM (μDOM), estilos y scripts. [25] SVGT 1.2 también incluye algunas características que no se encuentran en SVG 1.1, incluidos trazos sin escala, que son compatibles con algunas implementaciones de SVG 1.1, como Opera, Firefox y WebKit. A medida que aumentaron las bases de código compartidas entre los navegadores de escritorio y móviles, también aumentó el uso de SVG 1.1 sobre SVGT 1.2.
Compresión
Las imágenes SVG, al ser XML, contienen muchos fragmentos repetidos de texto, por lo que son adecuadas para algoritmos de compresión de datos sin pérdida . Cuando una imagen SVG se ha comprimido con el algoritmo gzip , se denomina imagen "SVGZ" y utiliza la .svgzextensión de nombre de archivo correspondiente. Los visores SVG 1.1 compatibles mostrarán imágenes comprimidas. [32] Un archivo SVGZ suele tener entre un 20 y un 50 por ciento del tamaño original. [33] W3C proporciona archivos SVGZ para comprobar su conformidad. [34]
Diseño
La especificación SVG 1.1 define 14 áreas funcionales o conjuntos de características: [11]
Caminos
Los contornos de formas simples o compuestas se dibujan con líneas curvas o rectas que se pueden rellenar, delinear o usar como trazado de recorte . Los trazados tienen una codificación compacta.
Por ejemplo, M(para "mover a") precede a las coordenadas numéricas iniciales x e y , y (para "línea a") precede a un punto hacia el cual se debe dibujar una línea. Otras letras de comando ( , , , , y ) preceden a los datos que se utilizan para dibujar varias curvas elípticas y de Bézier . se utiliza para cerrar una ruta.LCSQTAZ
En todos los casos, las coordenadas absolutas siguen a los comandos de letras mayúsculas y las coordenadas relativas se utilizan después de las letras minúsculas equivalentes. [35]
Formas básicas
Se pueden dibujar trayectorias rectas y trayectorias formadas por una serie de segmentos de líneas rectas conectados (polilíneas), así como polígonos cerrados, círculos y elipses. Los rectángulos y los rectángulos con esquinas redondeadas también son elementos estándar. [36]
Texto
El texto de caracteres Unicode incluido en un archivo SVG se expresa como datos de caracteres XML . Son posibles muchos efectos visuales y la especificación SVG maneja automáticamente texto bidireccional (para componer una combinación de texto en inglés y árabe, por ejemplo), texto vertical (como se puede escribir en chino o japonés) y caracteres a lo largo de una trayectoria curva (como el texto alrededor del borde del Gran Sello de los Estados Unidos ). [37]
Cuadro
Las formas SVG se pueden rellenar y delinear (pintar con un color, un degradado o un patrón). Los rellenos pueden ser opacos o tener cualquier grado de transparencia.
Los "marcadores" son características de final de línea, como puntas de flecha o símbolos que pueden aparecer en los vértices de un polígono. [38]
Color
Los colores se pueden aplicar a todos los elementos SVG visibles, ya sea directamente o mediante fill, stroke, y otras propiedades. Los colores se especifican de la misma manera que en CSS2 , es decir, utilizando nombres como blacko blue, en hexadecimal como #2f0o #22ff00, en decimal como rgb(255,255,127), o como porcentajes de la forma rgb(100%,100%,50%). [39]
Degradados y patrones
Las formas SVG se pueden rellenar o delinear con colores sólidos como se indicó anteriormente, o con gradientes de color o con patrones repetidos. Los gradientes de color pueden ser lineales o radiales (circulares), y pueden incluir cualquier cantidad de colores, así como repeticiones. También se pueden especificar gradientes de opacidad. Los patrones se basan en objetos gráficos rasterizados o vectoriales predefinidos, que se pueden repetir en direcciones xy yen cualquier lugar. Los gradientes y patrones se pueden animar y escribir en scripts. [40]
Los elementos gráficos, incluidos texto, trazados, formas básicas y combinaciones de estos, se pueden utilizar como contornos para definir regiones internas y externas que se pueden pintar (con colores, degradados y patrones) de forma independiente. Los trazados de recorte totalmente opacos y las máscaras semitransparentes se combinan para calcular el color y la opacidad de cada píxel de la imagen final, mediante la combinación alfa . [46]
Efectos de filtro [47]
Un efecto de filtro consiste en una serie de operaciones gráficas que se aplican a un gráfico vectorial de origen determinado para producir un resultado de mapa de bits modificado .
Interactividad
Las imágenes SVG pueden interactuar con los usuarios de muchas maneras. Además de los hipervínculos que se mencionan a continuación, cualquier parte de una imagen SVG puede hacerse receptiva a eventos de la interfaz de usuario, como cambios de foco , clics del mouse, desplazamiento o zoom de la imagen y otros eventos del puntero, el teclado y el documento. Los controladores de eventos pueden iniciar, detener o alterar animaciones, así como activar scripts en respuesta a dichos eventos. [48]
Enlace
Las imágenes SVG pueden contener hipervínculos a otros documentos, utilizando XLink . Mediante el uso del <view>elemento o un identificador de fragmento , las URL pueden vincularse a archivos SVG que cambian el área visible del documento. Esto permite crear estados de vista específicos que se utilizan para acercar o alejar un área específica o para limitar la vista a un elemento específico. Esto es útil al crear sprites . La compatibilidad con XLink en combinación con el <use>elemento también permite vincular y reutilizar elementos internos y externos. Esto permite a los codificadores hacer más con menos marcado y genera un código más limpio. [49]
Creación de guiones
Se puede acceder a todos los aspectos de un documento SVG y manipularlos mediante scripts de forma similar a HTML. El lenguaje de scripts predeterminado es JavaScript y existen objetos del Modelo de objetos de documento (DOM) definidos para cada elemento y atributo SVG. Los scripts están incluidos en <script>elementos y pueden ejecutarse en respuesta a eventos de puntero, eventos de teclado y eventos de documento según sea necesario. [50]
Animación
El contenido SVG se puede animar utilizando los elementos de animación integrados, como <animate>, <animateMotion>y <animateColor>. El contenido se puede animar manipulando el DOM utilizando ECMAScript y los temporizadores integrados del lenguaje de programación. La animación SVG se ha diseñado para que sea compatible con las versiones actuales y futuras del lenguaje de integración multimedia sincronizada (SMIL). Las animaciones pueden ser continuas, pueden repetirse en bucle y pueden responder a eventos del usuario, como se mencionó anteriormente. [51]
Fuentes
Al igual que con HTML y CSS, el texto en SVG puede hacer referencia a archivos de fuentes externos, como fuentes del sistema. Si los archivos de fuentes requeridos no existen en la máquina donde se representa el archivo SVG, el texto puede no aparecer como se esperaba. Para superar esta limitación, el texto se puede mostrar en una fuente SVG , donde los glifos requeridos se definen en SVG como una fuente a la que luego se hace referencia desde el <text>elemento. [52]
Metadatos
De acuerdo con la iniciativa de Web Semántica del W3C , SVG permite a los autores proporcionar metadatos sobre el contenido SVG. La función principal es el elemento, donde el documento puede describirse utilizando las propiedades de metadatos Dublin Core (por ejemplo, título, creador/autor, tema, descripción, etc.). También se pueden utilizar otros esquemas de metadatos. Además, SVG define elementos donde los autores también pueden proporcionar material descriptivo en texto simple dentro de una imagen SVG para ayudar a la indexación, búsqueda y recuperación por varios medios. [53]<metadata><title><desc>
Un documento SVG puede definir componentes que incluyen formas, degradados, etc., y utilizarlos repetidamente. Las imágenes SVG también pueden contener gráficos rasterizados , como imágenes PNG y JPEG , y otras imágenes SVG.
Este código producirá las formas coloreadas que se muestran en la imagen, excluyendo la cuadrícula y las etiquetas:
El uso de SVG en la web estaba limitado por la falta de compatibilidad con versiones anteriores de Internet Explorer (IE). Muchos sitios web que ofrecen imágenes SVG también proporcionan las imágenes en formato raster , ya sea automáticamente mediante la negociación de contenido HTTP o permitiendo que el usuario elija directamente el archivo.
Navegadores web
Konqueror fue el primer navegador compatible con SVG en su versión 3.2 en febrero de 2004. [54] A partir de 2011, todos los principales navegadores de escritorio, y muchos de los menores, tienen algún nivel de compatibilidad con SVG. Las implementaciones de otros navegadores aún no están completas; consulte la comparación de motores de diseño para obtener más detalles.
Algunas versiones anteriores de Firefox (por ejemplo, versiones entre 1.5 y 3.6 [55] ), así como algunos otros navegadores web, ahora obsoletos, capaces de mostrar gráficos SVG, necesitaban que estos estuvieran incrustados <object>o <iframe>elementos para mostrarlos integrados como partes de una página web HTML en lugar de utilizar la forma estándar de integrar imágenes con <img>. [56] Sin embargo, las imágenes SVG se pueden incluir en páginas XHTML utilizando espacios de nombres XML . [57]
Tim Berners-Lee , el inventor de la World Wide Web , criticó las primeras versiones de Internet Explorer por su incapacidad para soportar SVG. [58]
Opera (desde la versión 8.0) es compatible con la especificación SVG 1.1 Tiny, mientras que Opera 9 incluye compatibilidad con SVG 1.1 Basic y parte de SVG 1.1 Full. Opera 9.5 es compatible parcialmente con SVG Tiny 1.2. También es compatible con SVGZ (SVG comprimido).
Los navegadores basados en el motor de diseño Gecko (como Firefox , Flock , Camino y SeaMonkey ) han tenido un soporte incompleto para la especificación SVG 1.1 Full desde 2005. El sitio de Mozilla tiene una descripción general de los módulos que son compatibles con Firefox [59] y de los módulos que están en desarrollo. [60] Gecko 1.9, incluido en Firefox 3.0 , agrega soporte para más de la especificación SVG (incluidos los filtros). [61]
Pale Moon , que utiliza el motor de diseño Goanna (una bifurcación del motor Gecko ), admite SVG.
Internet Explorer 8 y versiones anteriores no admiten SVG. [63] [64] IE9 (lanzado el 14 de marzo de 2011) admite el conjunto de funciones SVG básicas. [65] IE10 amplió la compatibilidad con SVG agregando filtros SVG 1.1. [66]
El soporte nativo y completo tiene varias ventajas: no se necesitan complementos , SVG se puede mezclar libremente con otro contenido en un solo documento, y la representación y la creación de scripts se vuelven considerablemente más confiables. [68]
Dispositivos móviles
La compatibilidad con SVG puede estar limitada a SVGT en teléfonos inteligentes más antiguos o más limitados o puede estar limitada principalmente por su respectivo sistema operativo. Adobe Flash Lite ha admitido SVG Tiny de manera opcional desde la versión 1.1. En la conferencia SVG Open 2005, Sun demostró una implementación móvil de SVG Tiny 1.1 para la plataforma Connected Limited Device Configuration (CLDC). [69]
Los móviles que utilizan Opera Mobile , así como el navegador integrado del iPhone , también incluyen compatibilidad con SVG. Sin embargo, a pesar de que utilizaba el motor WebKit , el navegador integrado de Android no admitía SVG antes de la v3.0 (Honeycomb). [70] Antes de la v3.0, Firefox Mobile 4.0b2 (beta) para Android fue el primer navegador que se ejecutaba en Android en admitir SVG de forma predeterminada. [71]
El nivel de compatibilidad con SVG Tiny disponible varía de un dispositivo móvil a otro, según el motor SVG instalado. Muchos productos móviles más nuevos admiten funciones adicionales además de SVG Tiny 1.1, como degradado y opacidad; a esto a veces se lo denomina "SVGT 1.1+", aunque no existe un estándar de ese tipo.
El BlackBerry de RIM tiene soporte integrado para SVG Tiny 1.1 desde la versión 5.0. [72] El soporte continúa para el navegador BlackBerry Torch basado en WebKit en OS 6 y 7. [73]
La plataforma S60 de Nokia tiene soporte integrado para SVG. Por ejemplo, los iconos generalmente se representan utilizando el motor SVG de la plataforma. Nokia también ha liderado el grupo de expertos JSR 226: Scalable 2D Vector Graphics API que define la API de Java ME para la presentación y manipulación de SVG. Esta API se ha implementado en la plataforma S60 3rd Edition Feature Pack 1 y posteriores. [74] Algunos teléfonos de la Serie 40 también admiten SVG (como el Nokia 6280 ). [ cita requerida ]
La mayoría de los teléfonos Sony Ericsson a partir del K700 (según la fecha de lanzamiento) son compatibles con SVG Tiny 1.1. Los teléfonos a partir del K750 también son compatibles con funciones como opacidad y degradados. Los teléfonos con la plataforma Java 8 de Sony Ericsson son compatibles con JSR 226. [ cita requerida ]
SVG también es compatible con varios dispositivos móviles de Motorola , Samsung , LG y Siemens mobile / BenQ-Siemens . eSVG, una biblioteca de renderizado SVG escrita principalmente para dispositivos integrados , está disponible en algunas plataformas móviles. [75] [76]
Se puede programar un software para renderizar imágenes SVG mediante una biblioteca como librsvg, utilizada por GNOME desde 2000, Batik y ThorVG (Thor Vector Graphics) desde 2020 para sistemas livianos. Las imágenes SVG también se pueden renderizar en cualquier formato de imagen popular deseado mediante ImageMagick , una utilidad de línea de comandos gratuita (que también utiliza librsvg).
Para las aplicaciones web, el modo de uso denominado SVG en línea permite que el contenido SVG se incorpore en un documento HTML mediante una <svg>etiqueta. Sus capacidades gráficas se pueden emplear para crear interfaces de usuario sofisticadas, ya que SVG y HTML comparten contexto, manejo de eventos y CSS.
Como formato de documento, similar a los documentos HTML, SVG puede alojar scripts o CSS. Esto es un problema cuando un atacante puede cargar un archivo SVG a un sitio web, como una foto de perfil, y el archivo se trata como una imagen normal pero contiene contenido malicioso. [79] Por ejemplo, si un archivo SVG se implementa como una imagen de fondo CSS, o un logotipo en algún sitio web, o en alguna galería de imágenes, entonces cuando la imagen se carga en un navegador, activa un script u otro contenido. Esto podría bloquear el navegador (el ataque Billion Laughs ), pero también podría conducir a la inyección de HTML y ataques de secuencias de comandos entre sitios . Por lo tanto, el W3C estipula ciertos requisitos cuando SVG se usa simplemente para imágenes: Seguridad SVG. [80]
El W3C dice que el SVG en línea (un archivo SVG cargado de forma nativa en un sitio web) se considera un riesgo de seguridad menor porque el contenido es parte de un documento más grande, por lo que el uso de scripts y CSS no sería inesperado. [80]
Trabajo relacionado
El estándar MPEG-4 Parte 20 - Representación de escena de aplicación ligera (LASeR) y Formato de agregación simple (SAF) se basa en SVG Tiny. [81] Fue desarrollado por MPEG ( ISO/IEC JTC 1 /SC29/WG11) y publicado como ISO/IEC 14496-20:2006. [82] Las capacidades SVG se mejoran en MPEG-4 Parte 20 con características clave para servicios móviles, como actualizaciones dinámicas, codificación binaria, representación de fuentes de última generación. [83] SVG también se acomodó en MPEG-4 Parte 11 , en el formato Extensible MPEG-4 Textual (XMT) , una representación textual del contenido multimedia MPEG-4 utilizando XML . [84]
^ "Registro de tipo de medio para imágenes/svg+xml". W3C . Archivado desde el original el 19 de febrero de 2014 . Consultado el 5 de febrero de 2014 .
^ St. Laurent, Simon; Makoto, Murata; Kohn, Dan (enero de 2001). «XML Media Types» (Tipos de medios XML). IETF Datatracker . doi : 10.17487/RFC3023 . Archivado desde el original el 24 de agosto de 2011. Consultado el 5 de febrero de 2014 .
^ abc «El origen secreto de SVG». World Wide Web Consortium . 21 de diciembre de 2007. Archivado desde el original el 24 de diciembre de 2020. Consultado el 1 de enero de 2011 .
^ "Gráficos esquemáticos". W3C . Archivado desde el original el 31 de enero de 2022 . Consultado el 19 de julio de 2019 .
^ Al-Shamma, Nabeel; Robert Ayers; Richard Cohn; Jon Ferraiolo; Martin Newell; Roger K. de Bry; Kevin McCluskey; Jerry Evans (10 de abril de 1998). «Precision Graphics Markup Language (PGML)». W3C . Archivado desde el original el 16 de diciembre de 2021 . Consultado el 8 de mayo de 2009 .
^ Mathews, Brian; Brian Dister; John Bowler; Howard Cooper Stein; Ajay Jindal; Tuan Nguyen; Peter Wu; Troy Sandal (13 de mayo de 1998). «Vector Markup Language (VML)». W3C . Archivado desde el original el 6 de noviembre de 2021 . Consultado el 8 de mayo de 2009 .
^ "Lenguaje de marcado de hipergráficos (HGML)". W3C . Archivado desde el original el 7 de abril de 2022 . Consultado el 19 de julio de 2019 .
^ "Perfil de WebCGM". xml.coverpages.org . Archivado desde el original el 14 de agosto de 2022 . Consultado el 4 de marzo de 2019 .
^ "Gráficos vectoriales escalables (SVG) 2". W3C. Archivado desde el original el 27 de enero de 2017. Consultado el 28 de enero de 2017 .
^ Ferraiolo, Jon (4 de septiembre de 2001). «Especificación de gráficos vectoriales escalables (SVG) 1.0». Consorcio World Wide Web. Archivado desde el original el 11 de mayo de 2008. Consultado el 24 de febrero de 2010 .
^ ab Ferraiolo, Jon (16 de agosto de 2011). «Especificación de gráficos vectoriales escalables (SVG) 1.1». Consorcio World Wide Web. Archivado desde el original el 16 de septiembre de 2012. Consultado el 14 de abril de 2016 .
^ Capin, Tolga (15 de junio de 2009). «Perfiles SVG móviles: SVG Tiny y SVG Basic». Consorcio World Wide Web. Archivado desde el original el 9 de octubre de 2010. Consultado el 24 de octubre de 2010 .
^ Andersson, Ola (22 de diciembre de 2008). «Especificación Tiny 1.2 de gráficos vectoriales escalables (SVG)». Consorcio World Wide Web. Archivado desde el original el 7 de diciembre de 2020. Consultado el 24 de febrero de 2010 .
^ Dengler, Patrick (8 de julio de 2010). «Getting to SVG 2.0: A report from the SVG Working Group Face-to-Face (May 24th – June 1st 2010)» (Cómo llegar a SVG 2.0: un informe del grupo de trabajo SVG cara a cara (del 24 de mayo al 1 de junio de 2010)). Microsoft Developer Network . Microsoft . Archivado desde el original el 12 de mayo de 2016. Consultado el 26 de agosto de 2010 .
^ ab «Gráficos vectoriales escalables (SVG) 1.1 (segunda edición)». W3C. Archivado desde el original el 24 de septiembre de 2011. Consultado el 29 de agosto de 2011 .
^ Brotman, Alex; Adams, J. Trent. "SVG Tiny Portable/Secure". Ietf Datatracker . Archivado desde el original el 14 de febrero de 2021. Consultado el 9 de febrero de 2021 .
^ "Guía de Implementación". Grupo BIMI . Archivado desde el original el 28 de febrero de 2021 . Consultado el 9 de febrero de 2021 .
^ ab "Apéndice K: Cambios de SVG 1.1". World Wide Web Consortium. 26 de mayo de 2020. Archivado desde el original el 4 de febrero de 2021. Consultado el 31 de diciembre de 2020 .
^ "Capítulo 11: Texto". Consorcio World Wide Web. 26 de mayo de 2020. Archivado desde el original el 21 de abril de 2021. Consultado el 31 de diciembre de 2020 .
^ "Gráficos vectoriales escalables (SVG) 2". World Wide Web Consortium. 15 de septiembre de 2016. Archivado desde el original el 9 de septiembre de 2021. Consultado el 17 de agosto de 2021 .
^ "Gráficos vectoriales escalables (SVG) 2". Consorcio World Wide Web. 4 de octubre de 2018. Archivado desde el original el 19 de julio de 2021. Consultado el 17 de agosto de 2021 .
^ "Gráficos vectoriales escalables (SVG) 2". Consorcio World Wide Web. 8 de marzo de 2023. Archivado desde el original el 10 de febrero de 2021. Consultado el 7 de enero de 2024 .
^ Alex, Danilo; Fujisawa, Jun (2002). "SVG como lenguaje de descripción de páginas". svgopen.org. Archivado desde el original el 29 de mayo de 2010. Consultado el 24 de febrero de 2010 .
^ Paul, Festa (9 de enero de 2003). «W3C releases scripting standard, caveat». CNet . Archivado desde el original el 17 de mayo de 2011. Consultado el 24 de febrero de 2010 .
^ ab "SVG Tiny 1.2". Especificación de gráficos vectoriales escalables (SVG) Tiny 1.2 . W3C . 22 de diciembre de 2008. Archivado desde el original el 30 de enero de 2014 . Consultado el 5 de marzo de 2014 .
^ "SVG en los servicios de mensajería y transmisión multimedia 3GPP (versión de marzo de 2003)". SVG Open. 2003. Archivado desde el original el 26 de junio de 2009. Consultado el 19 de octubre de 2009 .
^ "3GPP Multimedia Messaging Service (MMS); Media forms and codecs (Release 5); 3GPP TS 26.140 V5.2.0 (2002-12); Technical Specification" ( documento comprimido ) . 3GPP . 2 de enero de 2003. Archivado desde el original el 8 de febrero de 2007. Consultado el 25 de febrero de 2010 .
^ "Proyecto de asociación de tercera generación; Servicios del grupo de especificaciones técnicas y aspectos del sistema; Servicio de mensajería multimedia (MMS); Formatos y códecs de medios (versión 5)" ( documento comprimido ) . 3GPP TS 26.140 V5.2.0 (2002-12) . 3GPP . Marzo de 2003. Archivado desde el original el 12 de febrero de 2007. Consultado el 24 de febrero de 2010 .
^ "Detalle de especificación 3GPP - 3GPP TS 26.141: Mensajería y presencia del sistema multimedia IP (IMS); formatos de medios y códecs". 3GPP . 10 de diciembre de 2009. Archivado desde el original el 7 de octubre de 2008 . Consultado el 24 de febrero de 2010 .
^ "Creación de sitios web interactivos con gráficos vectoriales escalables (SVG) – [con ejemplos]". intelegain.com. Archivado desde el original el 29 de noviembre de 2018. Consultado el 21 de noviembre de 2018 .{{cite web}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
^ "Listado de teléfonos compatibles con SVG". Svg.org. Archivado desde el original el 8 de enero de 2010. Consultado el 24 de octubre de 2010 .
^ Consulte www.w3.org/TR/SVG11/conform.html#ConformingSVGViewers que establece que "las implementaciones de SVG deben soportar correctamente los flujos de datos codificados con gzip [RFC1952] y con deflate [RFC1951], para cualquier tipo de contenido (incluidos SVG, archivos de script e imágenes)".
^ "Guardar SVG comprimido (SVGZ)". SVG Zone . Adobe Systems . 14 de julio de 2009. Archivado desde el original el 1 de junio de 2010 . Consultado el 24 de febrero de 2010 .
^ Por ejemplo, dev.w3.org/SVG/profiles/1.1F2/test/harness/htmlObject/conform-viewers-01-t.html
^ "Especificación SVG, "Paths"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 21 de junio de 2012. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Formas básicas"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 2 de octubre de 2009. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Texto"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 6 de octubre de 2009. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Pintura: relleno, trazo y símbolos de marcador"". Consorcio World Wide Web. 14 de enero de 2003. Archivado desde el original el 17 de septiembre de 2009. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Color"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 7 de septiembre de 2009. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Gradientes y patrones"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 21 de septiembre de 2009. Consultado el 19 de octubre de 2009 .
^ "Registro de IRC de SVG el 17 de noviembre de 2008". W3C. 2008. Archivado desde el original el 10 de octubre de 2016. Consultado el 25 de mayo de 2009. DS: Las prioridades deberían ser el diseño, las curvas de difusión, 2.5D y asegurarnos de que trabajamos bien con CSS en ese aspecto.
^ "Propuestas para la próxima especificación SVG". W3C. 16 de marzo de 2009. Archivado desde el original el 14 de mayo de 2011. Consultado el 25 de mayo de 2009. De hecho, tenemos previsto añadir nuevas capacidades de gradiente a SVG en la próxima versión, y estamos estudiando las curvas de difusión, que creo que satisfarán sus necesidades... Las *curvas de difusión* parecen una idea realmente genial.
^ Rusin, Zack (2008). "SVG en KDE: la libertad de la belleza". SVG Open. Archivado desde el original el 22 de julio de 2009. Consultado el 25 de mayo de 2009 .
^ Orzan, Alexandrina; Bousseau, Adrien; Winnemöller, Holger; Barla, Pascal; Thollot, Joëlle; Salesin, David (2008). "Curvas de difusión: una representación vectorial para imágenes con sombreado suave" (PDF) . ACM Transactions on Graphics . 27 . doi :10.1145/1360612.1360691. Archivado (PDF) desde el original el 18 de junio de 2009 . Consultado el 25 de mayo de 2009 .
^ "Gráficos vectoriales escalables (SVG) 2, borrador del editor del W3C del 13 de junio de 2013". Grupo de trabajo sobre gráficos vectoriales escalables (SVG). 2013. Archivado desde el original el 4 de diciembre de 2013. Consultado el 17 de septiembre de 2013 .
^ "Especificación SVG, "Recorte, enmascaramiento y composición"". Consorcio World Wide Web. 14 de enero de 2003. Archivado desde el original el 1 de diciembre de 2009. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Efectos de filtro"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 28 de agosto de 2006. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Interactividad"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 5 de julio de 2019. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Enlace"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 25 de junio de 2019. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Scripting"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 1 de octubre de 2009. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Animación"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 27 de agosto de 2006. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Fuentes"". World Wide Web Consortium. 14 de enero de 2003. Archivado desde el original el 26 de septiembre de 2009. Consultado el 19 de octubre de 2009 .
^ "Especificación SVG, "Metadatos"". Consorcio World Wide Web. Archivado desde el original el 3 de mayo de 2009. Consultado el 19 de octubre de 2009 .
^ Streichardt, Andreas (16 de septiembre de 2003). «KDE conquista los vectores con KSVG». Noticias de KDE . Archivado desde el original el 30 de junio de 2023. Consultado el 11 de febrero de 2012 .
^ "Error 276431: no se carga el SVG externo desde la etiqueta img". Mozilla. Archivado desde el original el 24 de octubre de 2012. Consultado el 9 de noviembre de 2011 .[ ¿Integridad del texto fuente? ]
^ Lusotec (25 de febrero de 2009). «Firefox no muestra la imagen SVG». mozilla.dev.tech.svg . Grupos de Google . Archivado desde el original el 14 de mayo de 2011 . Consultado el 25 de febrero de 2010 .
^ Brettz9 (25 de agosto de 2008). "Introducción a SVG en HTML". Centro de desarrolladores de Mozilla . Mozilla . Archivado desde el original el 5 de diciembre de 2008 . Consultado el 25 de febrero de 2010 .{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace )
^ Svensson, Peter (10 de septiembre de 2008). «Creator of Web spots a flaw in Internet Explorer». NBC News . Associated Press. Archivado desde el original el 9 de noviembre de 2013. Consultado el 25 de febrero de 2010 .
^ "SVG en Firefox". Centro de desarrolladores de Mozilla . Mozilla . 23 de octubre de 2009. Archivado desde el original el 23 de junio de 2008 . Consultado el 25 de febrero de 2010 .
^ "Estado de Mozilla SVG". Mozilla . Archivado desde el original el 5 de marzo de 2010 . Consultado el 25 de febrero de 2010 .
^ Mgjbot (15 de enero de 2008). «Mejoras de SVG en Firefox 3». Centro de desarrolladores de Mozilla . Mozilla . Archivado desde el original el 9 de febrero de 2014. Consultado el 25 de febrero de 2010 .
^ "Estado de SVG de WebKit". WebKit . 5 de enero de 2010. Archivado desde el original el 10 de febrero de 2010 . Consultado el 25 de febrero de 2010 .
^ "Conversación de la zona de expertos de Windows Internet Explorer 8 (19 de junio de 2008)". Microsoft. 19 de junio de 2008. Archivado desde el original el 17 de marzo de 2010. Consultado el 24 de octubre de 2010 .
^ Schiller, Jeff (13 de febrero de 2010). «Soporte SVG». Archivado desde el original el 16 de febrero de 2009. Consultado el 25 de febrero de 2010 .
^ "Novedades de Internet Explorer 9". Microsoft Developer Network . Microsoft . 22 de marzo de 2011. Archivado desde el original el 5 de abril de 2011 . Consultado el 22 de marzo de 2011 .
^ "SVG (Windows)". Centro de desarrollo de Internet Explorer . Microsoft . Archivado desde el original el 20 de marzo de 2014 . Consultado el 27 de agosto de 2014 .
^ "Estado y hoja de ruta de las características de la plataforma web Microsoft Edge - Desarrollo de Microsoft Edge". developer.microsoft.com . Archivado desde el original el 15 de abril de 2018 . Consultado el 19 de abril de 2018 .
^ "Prepárese para navegar sin complementos". MSDN . 2014. Archivado desde el original el 31 de diciembre de 2014 . Consultado el 5 de marzo de 2014 .
^ "Conferencia y exposición SVG Open 2005 - Actas - Interfaces de usuario orientadas a dibujos animados". svgopen.org. Archivado desde el original el 3 de diciembre de 2010. Consultado el 29 de agosto de 2010 .
^ "El navegador no procesa imágenes SVG". Archivado desde el original el 20 de mayo de 2011 . Consultado el 1 de enero de 2011 .
^ "Firefox Mobile 4.0b2 (beta) para Android admite imágenes SVG". Android Issue 1376 . 16 de diciembre de 2010. Archivado desde el original el 21 de agosto de 2014 . Consultado el 29 de enero de 2014 .
^ "Compatibilidad con SVG". RIM. Archivado desde el original el 10 de octubre de 2011. Consultado el 6 de octubre de 2011 .
^ "BlackBerry Torch: cuadro de mando para desarrolladores de HTML5". Sencha . Archivado desde el original el 5 de marzo de 2014 . Consultado el 6 de octubre de 2011 .
^ "Información del producto S60". S60.com. Archivado desde el original el 13 de octubre de 2007. Consultado el 19 de octubre de 2009 .
^ Jezic, Damir (15–17 de julio de 2002). "SVG para sistemas embebidos". Zurich 2002 . svgopen.org. Archivado desde el original el 16 de marzo de 2012 . Consultado el 5 de abril de 2012 .
^ "eSVG". Intesis Intelligent Embedded Software . 2010. Archivado desde el original el 3 de marzo de 2012. Consultado el 29 de enero de 2014 .
^ Selinger, Peter (2001–2013). «Potrace – Transformando mapas de bits en gráficos vectoriales». Proyecto Potrace de SourceForge . Archivado desde el original el 9 de septiembre de 2009. Consultado el 29 de enero de 2014 .
^ "Novedades de PowerPoint para Microsoft 365". support.microsoft.com . Septiembre de 2019. Archivado desde el original el 13 de marzo de 2021 . Consultado el 17 de abril de 2021 .
^ Nguyen, Thanh Nguyen (7 de noviembre de 2019). "Anatomía de la superficie de ataque de los gráficos vectoriales escalables (SVG) en la Web". Blog de Fortinet . Archivado desde el original el 21 de febrero de 2023. Consultado el 21 de febrero de 2023 .
^ ab "Seguridad SVG - Wiki del W3C". W3C . Archivado desde el original el 21 de febrero de 2023 . Consultado el 21 de febrero de 2023 .
^ Concolato, Cyril (julio de 2005). «MPEG-4 LASeR white paper». Organización Internacional de Normalización . Archivado desde el original el 25 de julio de 2011. Consultado el 29 de agosto de 2010 .
^ "ISO/IEC 14496-20:2008 - Tecnología de la información - Codificación de objetos audiovisuales - Parte 20: Representación ligera de escenas de aplicaciones (LASeR) y formato de agregación simple (SAF)". Organización Internacional de Normalización . Archivado desde el original el 14 de mayo de 2011. Consultado el 30 de octubre de 2009 .
^ "LASeR - el estándar MPEG para servicios multimedia enriquecidos" (PDF) . Archivado (PDF) del original el 21 de febrero de 2011 . Consultado el 11 de abril de 2010 .
^ Chiariglione, Leonardo (8 de marzo de 2005). «Riding the media bits – Bits and bytes». Archivado desde el original el 25 de septiembre de 2010. Consultado el 30 de octubre de 2009 .