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 especificas para mostrar codigos QR en aplicaciones web.

Generar imagenes de codigos 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 codigo 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 incrustacion en correos electronicos se facilita porque algunos clientes de correo que bloquean imagenes externas pueden mostrar imagenes data URI en linea.

El principal inconveniente es que la codificacion Base64 aumenta el tamano de los datos aproximadamente un 33%. Una imagen de codigo QR que seria de 3 KB como archivo se convierte en aproximadamente 4 KB como data URI incrustado en HTML. Para codigos QR pequenos (menos de unos pocos KB), esta sobrecarga es insignificante. Sin embargo, para imagenes de codigos QR mas grandes o de mayor resolucion, el documento HTML se hincha y el almacenamiento en cache del navegador no puede aplicarse a los datos de imagen por separado de la pagina.

En la practica, los data URIs funcionan mejor para codigos QR generados dinamicamente que son unicos por vista de pagina, como codigos de autenticacion especificos de sesion o codigos de pago de un solo uso. Para codigos QR estaticos que aparecen en multiples paginas, las referencias de archivo regulares con encabezados de cache apropiados son mas eficientes. Los data URIs en formato SVG son particularmente utiles para codigos QR porque SVG se comprime bien y escala sin perdida de calidad.