El código de esta página no ha arrancado.

Abrir index.html directamente desde una carpeta bloquea los módulos de JavaScript, así que no pasará nada al elegir la imagen que se va a leer. En vez de eso, sirve la carpeta por http:

powershell -ExecutionPolicy Bypass -File serve.ps1

Abre después http://localhost:8080/.

Lector de QR y códigos de barras — escanea un código QR desde una imagen o con la cámara

Apúntale con la cámara o suelta una imagen. Se lee aquí, y en ningún otro sitio.

Idioma: Español
Ver el código
Tus imágenes y los códigos que hay en ellas se procesan en tu navegador. No se suben para procesarlos.

Leer un código es aritmética sobre píxeles, y los píxeles ya están aquí. Encontrar el símbolo, corregir el ángulo, deshacer la máscara, reparar los daños con Reed-Solomon y volver a leer los bits ocurre todo en unas dos mil líneas de JavaScript en esta página que puedes leer. La cámara es la misma promesa, no una excepción: un fotograma llega como píxeles a esta pestaña, se examina y desaparece. No se graba nada, no se guarda nada, y esta página no tiene ninguna función de red con la que enviarlo.

Comprobación en directo: comprobando…

Sin conexión: comprobando…

No hace falta que nos creas: abre las DevTools, mira la pestaña de red y escanea un código con la cámara encendida. Ni una sola petición lleva un fotograma ni un carácter de lo que decía. O desconéctate de internet y lee el código igualmente.

1 Enséñale el código

Una fotografía, una captura de pantalla o la cámara. Elijas lo que elijas, la imagen se lee aquí, en esta página, en tu máquina — no se sube nada, y un fotograma de la cámara se examina y se tira, no se graba.

También puedes pegar una imagen directamente con Ctrl+V — una captura de un código que ya está en pantalla es la vía más rápida.

2 Lo que dice

Se enseña, nunca se abre. Un código impreso es una dirección que nadie puede leer, que es justo lo que hace que a alguien le compense pegar una pegatina encima — así que la cadena entera está aquí para mirarla, con el host al que llegarías de verdad sacado a su propia línea.

Ver como Markdown

Cómo leer un código QR sin subir la imagen

  1. Dale la imagen. Suelta una foto o una captura sobre la caja, pega una directamente o pulsa el botón de la cámara. Varias a la vez está bien: cada una se lee por su cuenta y cada una tiene su respuesta. Una captura de un código que ya está en tu pantalla es la vía más rápida y la más fiable, porque ahí no hay lente, ni ángulo, ni luz de por medio.
  2. Que entre el símbolo entero, con su margen. El espacio blanco alrededor de un código forma parte del código: es como un lector sabe dónde acaba el símbolo. Una foto recortada hasta el borde de los cuadros es, con diferencia, el motivo más común de que uno no se lea. Llenar más o menos la mitad del encuadre con el código está bien; más cerca y las esquinas se quedan fuera.
  3. Lee la dirección antes de decidir nada. El sentido de escanear un código en un cartel, en un parquímetro o en una carta es averiguar adónde lleva, y eso es justo lo que la cámara del móvil no te deja hacer de verdad. Aquí el host va en su propia línea. Si no es un nombre que esperabas, ya tienes lo que venías a buscar y no queda nada que abrir.
  4. Toma en serio los avisos, sobre todo los discretos. Una dirección http:// a secas, un nombre en un alfabeto que no es el que parece, un acortador de enlaces, o cualquier cosa delante de una @ en la dirección: cada uno se nombra donde aparece. Ninguno demuestra nada por sí solo. Todos merecen diez segundos antes de ir.
  5. Si no lo lee, cambia la luz antes que ninguna otra cosa. Casi todos los fallos son un problema de umbral: un reflejo cruzando el centro, una sombra sobre una esquina, o una pantalla fotografiada en un ángulo que recoge la retroiluminación. Muévete para que el brillo no caiga sobre el código, o enciende la luz de la cámara. Si aun así no, haz una foto plana y de frente y suelta esa: una imagen fija recibe una búsqueda mucho más a fondo de la que puede recibir un fotograma en vivo.
  6. Si la respuesta te extraña, mira la imagen muestreada. Abre «cómo se leyó este» y fíjate en la cuadrícula pequeña. Es lo que esta página creyó que era el código, redibujado a partir de los módulos que muestreó. Un lector que leyó mal un símbolo y lo reparó hasta convertirlo en algo plausible lo enseña ahí, y en ningún otro sitio.

La versión larga

Cómo crear un código QR y demostrar que escanea Genera el código y verifícalo después con el lector del mismo sitio: la carga exacta, el enlace real, a tamaño de imprenta y desde una foto, antes de la tirada. Todo en el navegador, nada subido.

Preguntas

¿Se sube la imagen a algún sitio?

No, ni tampoco nada de lo que se lee en ella. La imagen se descodifica sobre un lienzo de esta página y se lee ahí, con JavaScript servido desde este sitio. Esta herramienta no tiene ninguna función de red — nunca descarga nada y nunca envía nada — y la Content-Security-Policy de la página nombra todas las direcciones que puede contactar, y ninguna es nuestra. La prueba más sencilla es desconectarte de internet: sigue funcionando.

¿La cámara graba algo?

No. Un fotograma llega como píxeles a esta pestaña, se dibuja sobre un lienzo, se examina y lo sobrescribe el siguiente una décima de segundo después. No se escribe nada en disco y no se guarda nada. El flujo se para en cuanto pulsas parar, cuando la pestaña pasa a segundo plano y cuando abandonas la página — y la luz de tu cámara es el indicador del que fiarte, porque ninguna página puede apagarla.

¿Por qué me enseña el enlace en vez de abrirlo?

Porque esa es la parte útil. Un código QR es una dirección que no puedes leer, y por eso funciona una pegatina sobre el código de un parquímetro: cuando sabes adónde iba, ya estás allí. Aquí la cadena se imprime entera, el host se saca a su propia línea, y abrirlo es un botón aparte que pulsas después de leerlo. Es un clic de más, y es el clic que este formato ha necesitado siempre.

¿Qué sabe leer?

Códigos QR de todas las versiones, de la 1 a la 40, en los cuatro niveles de corrección de errores, en modo numérico, alfanumérico, de bytes y kanji, informando de los conjuntos de caracteres ECI y de los símbolos de un juego encadenado en lugar de descartarlos en silencio. Del lado de las rayas: EAN-13, EAN-8, UPC-A, UPC-E, ITF-14, Interleaved 2 of 5, Code 128 y Code 39. No lee Data Matrix, PDF417, Aztec ni MaxiCode.

No me lee el código. ¿Qué pasa?

Nueve de cada diez veces es una de tres cosas. El margen blanco está recortado, y un lector lo usa para saber dónde acaba el símbolo. Hay un reflejo o una sombra sobre parte del código, así que ningún umbral separa los cuadros oscuros de los claros. O el código es tan pequeño en el encuadre que sus módulos no llegan a dos píxeles. Cambia la luz, llena más o menos la mitad del encuadre y haz la foto de frente y no de lado.

¿Puede leer un código dañado o tapado en parte?

A veces. Reed-Solomon restaura palabras de código dañadas dentro de la capacidad del símbolo. El 30 % aproximado de H se refiere al total de palabras de código, no a módulos arbitrarios ni a superficie; dañar los patrones de posición puede impedir la detección. El contador del resultado muestra las reparaciones realizadas. DENSO explica los niveles.

¿Por qué dice que no puede saber adónde lleva un enlace de bit.ly?

Porque averiguarlo sería preguntarle a bit.ly, y eso es una petición de red. Todo lo demás que afirma esta página se apoya en que aquí no hay código que contacte con nada, y hacer una excepción a la callada valdría menos que la respuesta. Así que se nombra el acortador y lo que esconde se deja honestamente sin saber. Si quieres resolverlo, pégalo en algo que sí esté dispuesto a preguntar.

¿Es seguro escanear un código QR?

Escanearlo es seguro. Hacerle caso es el riesgo, y es real: los códigos pegados encima del bueno en parquímetros, en mesas de restaurante y en avisos de paquetería son ya bastante comunes como para tener nombre. Lo que los hace funcionar es que nadie puede leer un código mirándolo. Leerlo sin abrirlo — que es lo que hace esta página — elimina esa ventaja por completo, y los diez segundos que cuesta mirar el host son toda la defensa.

¿Qué es la cuadrícula pequeña de debajo de cada resultado?

Los módulos que esta página muestreó de verdad en tu imagen, redibujados a un cuadrado por módulo. Está ahí para que la lectura se pueda comprobar con la vista en lugar de creérsela: si esa cuadrícula se parece al código que fotografiaste, la respuesta de arriba salió de los píxeles correctos. Casi ningún lector te enseña esto, y es la diferencia entre una herramienta que puedes comprobar y una que tienes que creer.

¿Lee varios códigos en una misma imagen?

Uno por imagen, de momento. Suelta varias imágenes a la vez y cada una se lee por su cuenta, y la cámara va leyendo código tras código mientras la mueves, quedándose con cada uno nuevo que no haya visto ya. Una sola fotografía con una hoja llena de códigos es un trabajo para recortarla, o para apuntar la cámara a uno cada vez.

¿Por qué llama a mi código de barras algo distinto de lo que pedí?

Porque un código de barras no lleva su propio nombre encima. UPC-A es un EAN-13 cuyo primer dígito es un cero, ITF-14 es Interleaved 2 of 5 con catorce dígitos y un dígito de control válido, y Code 128 en su modo numérico no se parece a nada más. Lo que informa esta página es lo que dicen las barras más lo que confirma el dígito de control, que es todo lo que el propio símbolo sabe.

¿Funciona sin conexión?

Sí. Carga la página una vez, desconéctate de internet y sigue funcionando, cámara incluida. Es también la forma más sencilla de probar que no se sube nada: un lector que enviara tu imagen fuera para descodificarla se pararía en el momento en que desenchufas.