1 de Octubre de 2014
Feb
12

Crear y leer códigos QR desde VB.NET

Categorías: ,

Supongo que muchos de vosotros habréis visto en más de una ocasión los códigos QR (Quick Response Barcode).

Estos códigos de barras actualmente están haciendo "furor" debido a la proliferación de los dispositivos móviles de tipo iPhone y Android.
De hecho, en la Android Market se pueden instalar directamente las aplicaciones en el móvil enfocando éste hacia la pantalla del ordenador y "leer" el código que aparece en la página:

Gracias al auge de los dispositivos móviles de nueva generación, las cabecezas pensantes de los departamentos de marketing de las empresas no han tardado en ver un filón a todo esto. Se pueden encontrar QR Codes incluso en las marquesinas de las paradas del bus:

...como reclamo publicitario en congresos:

...incluso en latas de refrescos:

 

 

...o en fachadas de edificios:

...y bueno, estos "japos" (con cariño eh! :) son la pera limonera:

Y como no, hasta en CSI Ney York teniendo un trozo de un QR Code pueden saber la identidad del asesino, que número de calzado usa, si ha comido tallarines el martes pasado o si usa Farmatin para el tinte del pelo:

Para ver este video es necesario tener JavaScript activado y el plugin Flash instalado en el navegador.

Nota: En serio, un día tendré que escribir un post sobre CSI New York :)

Hay otra gente que ve posibilidades de negocio en todo esto:

Para ver este video es necesario tener JavaScript activado y el plugin Flash instalado en el navegador.

Incluso hay gente que se viste con camisetas con QR Codes, hay gorras, llaveros, etc, y los más freaks en lugar de tatúarse "letras chinas" ya se tatúan QR Codes, en fin...que hay gente pa'to :)

Existen otros tipos de códigos 2D ampliamente utilizados en la industria. El PDF417 es un estándar "de facto" en la emisión de tarjetas de embarque de las compañias aéreas de prácticamente todo el mundo, además se usa también en los carnets de conducir de los EE.UU para almacenar información acerca del conductor,...

En sucesivos tutoriales cuando tenga algo de tiempo veremos como será posible generar desde VB.NET códigos de tipo Datamatrix y PDF417 o códigos lineales tipo CODE-39, EAN-13, CODE-128, etc (Dios bendiga iTextSharp :)

Bueno, al "asunto" :)

Podemos consultar la Wikipedia para tener algo de culturilla general sobre los QR Codes. Es interesante observar que los QR Codes son "libres" y que no se ejerce ninguna patente sobre ellos.

Buscando por internet para documentarme sobre este tipo de códigos encontré esta librería desarrollada nativamente en C# por un tal twit88.

La aplicación que he montado entorno a esta librería (después de hacer un par de correcciones en el código C# de la librería: ver comentarios en el link original de la librería) permite tanto generar los códigos (Codificar), como también leerlos (Descodificar):

Codificando un código:

Observaciones interesantes:

  • Existen 4 niveles de corrección de errores: 7%, 15%, 25% y 30% .Cuanto mayor es el nivel de corrección más "datos" se meten en el código para poder descodificarlos correctamente. Esto es útil por ejemplo si trabajamos en ambientes "sucios", donde usaremos el mayor nivel de corrección posible (30%). De esta forma, si el código tiene un "pegote de aceite" se podría descodificar correctamente.
  • Pixel Scale: Cuanto más pequeño sea el Pixel Scale mas pequeño será el QR Code, pero sin embargo necesitaremos un hardware más "complejo y sofisticado" para leerlo.
  • Forzar UTF-8: Esta opción codifica el QR Code para guardar correctamente los carácteres "especiales" como por ejemplo puedan ser España, Perú, pingüino, Barça, etc.

Los códigos QR tienen 40 "versiones" (http://www.denso-wave.com/qrcode/vertable2-e.html)
La versión 1 es un cuadro de 21 x 21 "pixels", mientras que la versión 40 es un cuadro de 177 x 177 "pixels"

Una vez generado el código lo podéis guardar en formato *.png, *.jpg, *.bmp o *.gif o incluso imprimirlo.

Para "leer" los códigos, cargaremos la imagen y pulsaremos en "Decode". Esto mostrará el resultado en la caja de texto situada debajo de la imagen:

¿Que puedes guardar en un QR Code?

Pues para la versión 40, y con el nivel de corrección más bajo, puedes almacenar hasta 23648 bits (2956 bytes). Esto es casi 3 KB de información
La información que pongas dentro ya es cosa tuya, puede ser desde una dirección web, de tal forma que cuando el móvil lea dicho QR code vaya directamente a dicha página web, enviar un SMS si pones un texto como este: SMSTO+678xxxxxx:hola esto es una prueba de tal forma que cuando el móvil lea dicho QR code envíe un SMS al telefóno +678xxxxxx con el texto "hola esto es una prueba,...

El caso es tener imaginación :)

 

 

Saludos.
mov eax,ollydbg; Int 13h 

 

Descargar código fuente del QRCodeVBNET
(974 KB. Visual Studio 2008. Ya incluye la librería pre-compilada de twit88)

Descargar código fuente del Librería QRCode C# twit88
(1,23 MB. Visual Studio 2008) 

Tutorial complementario: Crear códigos de barras con iTextSharp desde .NET 



Ollydbg ProSignature

5
Valoración media: 5 (1 voto)

12 Comentarios:

pues curiosa la

pues curiosa la cosa

semper fi

SC

tal como lo pediste en el QRC

Gracias por el saludete, ahí te dejo el comentario Mr. Green

Muy buena entrada.

Muy buena entrada. Realmente interesante los códigos QR. Lástima que no disponga de un móvil de última generación para comprobarlos jaja. De todas formas igual me bajo el código y lo pruebo.

Saludos  y 5*.

Hola, creemos que los

Hola, creemos que los códigos QR hará la conexión entre la línea y los mundos en línea más fácil. Es por eso que hemos creado nuestro generador de código QR con funciones sociales - YouScan.me - http://www.youscan.me. Usted puede agregar toda la información de perfil de Facebook o como página de fans, twitter, youtube, etc y conectarse con otros.

Excelente Aporte

Muchas gracias por el aporte amigo excelente ayuda, justo lo que buscaba Saludos

Gracias

Muchas gracias, es un aporte excelente y ademas me sirve para comprender mejor el funcionamiento de los códigos QR (me descargue un lector para HTC y queria hacer mi propio generador con VB y ademas así comprendo el funcionamiento de estos códigos. Gracias.

gracias.

gracias por el source, no confio en los generadores online. Saludos.

No funciona el link!

Hola, es genial! Pero el link de vb.net no funciona... podrías, por favor, volverlo a colgar? Gracias!!

Hola Marcos Acabo de

Hola Marcos

Acabo de verificar el enlace y funciona bien. ¿Continuas teniendo problemas?

Saludos.
mov eax,ollydbg; Int 13h  

Gracias ^^

Hola! Una excelente aportacion... n_n ... justo lo que necesitaba. Gracias ^^ Solo una pregunta,,, este dll no tiene algun costo verdad jeje solo para sacarme de la duda ñ_ñ

Link

Hola! Sí, muchísimas gracias! Ya funciona! Eres enorme!! Saludos!

Me has abierto los ojos

Después de leer tu artículo se ha abierto ante mi imaginación todo un mundo de posiblidades. Muy buen artículo.