Qraft

Data URI

Los data URIs (esquema Data URI) incrustan datos binarios como cadenas codificadas en Base64 directamente dentro de un URI, siguiendo el formato data:image/png;base64,iVBORw0KGgo.... En lugar de referenciar un archivo externo, los datos mismos se contienen en el URI. Este enfoque tiene ventajas específicas para mostrar códigos QR en aplicaciones web.

Generar imágenes de códigos QR como data URIs ofrece varios beneficios. Primero, no se necesitan archivos externos - una etiqueta HTML <img src="data:image/svg+xml;base64,..."> muestra un código QR sin subir archivos de imagen al servidor. Segundo, se reducen las solicitudes HTTP ya que no se necesita una solicitud adicional para el archivo de imagen, acelerando los tiempos de carga. Tercero, la incrustación en correos electrónicos se facilita porque algunos clientes de correo que bloquean imágenes externas pueden mostrar imágenes data URI en línea.

El principal inconveniente es que la codificación Base64 aumenta el tamaño de los datos aproximadamente un 33%. Una imagen de código QR que sería de 3 KB como archivo se convierte en aproximadamente 4 KB como data URI incrustado en HTML. Para códigos QR pequeños (menos de unos pocos KB), esta sobrecarga es insignificante. Sin embargo, para imágenes de códigos QR más grandes o de mayor resolución, el documento HTML se hincha y el almacenamiento en caché del navegador no puede aplicarse a los datos de imagen por separado de la página.

En la práctica, los data URIs funcionan mejor para códigos QR generados dinámicamente que son únicos por vista de página, como códigos de autenticación específicos de sesión o códigos de pago de un solo uso. Para códigos QR estáticos que aparecen en múltiples páginas, las referencias de archivo regulares con encabezados de caché apropiados son más eficientes. Los data URIs en formato SVG son particularmente útiles para códigos QR porque SVG se comprime bien y escala sin pérdida de calidad.