Selecciona, arrastra o pega una imagen, o captura una con la cámara. Los formatos disponibles dependen de BarcodeDetector en tu navegador.
Se ejecuta localmente en tu navegadorSuelta una imagen aquí o elige un archivo de imagen local
La decodificación utiliza BarcodeDetector del navegador. La imagen permanece en este dispositivo; la cámara solo se solicita al iniciarla.
Chrome y Edge ofrecen actualmente el soporte BarcodeDetector más amplio. Si tu navegador no lo incluye, usa uno compatible y actual para mantener la imagen local.
Elige una imagen, suéltala en la página, pégala desde el portapapeles o inicia la cámara y captura un fotograma. La lectura la hace la propia interfaz BarcodeDetector del navegador, así que la imagen no se sube: en una sesión de decodificación medida la página no envió ninguna petición con ella y el único tráfico externo fue el de analítica del propio sitio.
Los formatos disponibles son los que expone tu navegador. La página pregunta primero a BarcodeDetector.getSupportedFormats() y solo pide la intersección con la lista que conoce; por eso la misma imagen puede decodificarse en un navegador y quedarse muda en otro.
Medido en Chrome 153 sobre macOS, los formatos expuestos eran QR, Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-E, ITF, Data Matrix, Aztec y PDF417. Una imagen QR de prueba, un Code 128, un EAN-13 y un Code 39 se decodificaron con su contenido exacto; una imagen UPC-A volvió como EAN 13 porque esa compilación no expone upc_a. El Micro QR tampoco está en la lista: un símbolo Micro QR no se detectó, mientras que un QR normal con el mismo contenido sí.
Dos códigos QR en una misma imagen se devolvieron en una sola lectura y los resultados conservan el orden que informó el navegador. Como el decodificador es del navegador, un navegador sin BarcodeDetector lo avisa al cargar y se niega a leer en lugar de adivinar.
El archivo se lee dentro de la página con FileReader y se entrega a BarcodeDetector.detect() como imagen. Las imágenes arrastradas o pegadas siguen el mismo camino; una captura de cámara se dibuja en un canvas y se decodifica desde ahí. El archivo debe ser una imagen y no superar 15 MB: un PNG de 30 MB se rechazó con un mensaje.
No se sube nada: la imagen nunca forma parte de una petición. El tamaño en píxeles es menos limitante de lo que parece —una imagen de prueba de 9000 x 9000 se decodificó en torno a un segundo— y un archivo que el navegador no puede leer como imagen ahora se informa en lugar de no hacer nada.
La cámara se abre solo al pulsar Iniciar cámara y el navegador pide permiso en ese momento. El fotograma se decodifica al pulsar Capturar y decodificar, y Detener cámara libera el flujo y oculta la vista previa; no hay escaneo continuo mientras el vídeo está activo.
Cada lectura empieza de cero, así que pulsar Decodificar imagen dos veces sobre la misma imagen da los mismos valores, y una lectura que no encuentra nada lo dice y deja la lista vacía. El texto leído se muestra como texto: un código QR con marcado HTML se muestra, no se interpreta.