Ubuntu Peronista@TTBP

Este es un espejo en el Tilde Blog Project del blog original Ubuntu Peronista. Se encuentra disponible en Tildeverso únicamente con fin histórico.



05 september 2022

¿Cómo creo y escaneo código QR en Ubuntu?

El 12 de marzo de 1954 y presente en el Sindicato de Empleados de Comercio de Mar del Plata, Juan Perón explica la necesidad de compartir un código común entre los Trabajadores, a la vez que explica cómo crear o escanear Código QR en Ubuntu.

(...) El hombre ha formado, a lo largo de generaciones en Comunidad, una suerte de lenguaje, un código que comparte con su tribu y que le permite transmitir sus ideas, sentires, etcétera. Esta es una de las características de los Pueblos, la de permitirse un propio arte de creación. Es indudable también que los hombres de trabajo comparten su propio código común a fin de expresarse. Este debe ser sometido a un convencionalismo tal que lo convierten por propio derecho en un lenguaje capaz de portar la significancia que anhelan. Eso es lo que ha logrado el Justicialismo.

En estos tiempos, los hombres me han premiado con la más satisfactoria e importante misión con la que puede contar un soldado, que es la de tornarme un vínculo de unión para los trabajadores argentinos. Indudablemente que toda la formación profesional que he recibido sólo me ha otorgado las herramientas necesarias para cumplir técnicamente este magnánimo rol, pero el herramental humano he tenido que desglosarlo por mí mismo. Sin duda ello no se aprende en ninguna academia: un Conductor se nace.

Un Conductor interpreta a vista de águila el panorama y debe constituirse en una Piedra de Rosetta que le permita leer el corazón de sus Trabajadores, interpretar en ellos los anhelos de Felicidad y Justicia Social. La tarea de traducir estos magnos objetivos en una Realidad Efectiva, concreta y tangible, dable a ser defendida es lo que nos debe orientar.

Pues bien, esta misma técnica puede llevarse a cabo en otros rudimentos de la vida, a fin de ostentar un herramental potente y comprensible para una multiplicidad de funciones. Sabemos que para que un código sirva como instrumento para comunicar, realmente no importa su forma o cariz, sino que fundamentalmente ha de poder ser reconocido por su emisor y por su receptor si es que queremos que se torne en una efectiva manera de comunicar.

Pues bien señores, tomemos el ejemplo del Código QR (literalmente "respuesta rápida"). Se trata de un código de gráfico de escritura estructurado matricialmente en un patrón bidimensional. El mismo fue diseñado originalmente para el uso en aplicaciones robotizadas por parte de la industria automotriz. Se trata de una etiqueta cuadrada - normalmente de impresión monocroma, y cuya codificación contiene información binaria. Esta etiqueta puede ser fácilmente legible de forma computada por medio de un lector gráfico común.

Es útil para codificar en este gráfico información numérica, alfanumérica, binaria, e incluso texto japonés kanji. Su empleo se ha extendido como una alternativa superadora al clásico código de barra URC, ya que puede contener mayor cantidad de información y puede leerse con menor o nula intervención humana. Se los emplea además como método para almacenar enlaces URL, direcciones de correo electrónico, tarjetas de negocio digital (VCards), condiciones para darnos de alta en una red, texto plano, etcétera.

El diseño del código permite escanearlo con un dispositivo de reconocimiento óptico dotado con un programa de inteligencia artificial. Este dispositivo realizará el reconocimiento y la traducción. Su grafismo lo hace intrínsecamente fácil de leer ópticamente, en cualquier sentido e incluso si no está colocado frente al lector. En el caso de los móviles, existen varias aplicaciones efectivas para realizar la decodificación.

Nunca está de más conocer que existen variadas versiones de códigos QR provistos de distintos niveles de corrección de error en su algoritmo de generación, ya que existe un equilibrio entre legibilidad óptica del patrón, y la complejidad y capacidad de almacenamiento del mismo. Las versión más utilizada es la 10, y se detallan de la siguiente manera:

Versión 1: Patrón de 21x21. Versión 2: Patrón de 25x25. Versión 3: Patrón de 29x29. Versión 4: Patrón de 33x33 Versión 10: Patrón de 57x57 Versión 25: Patrón de 117x117. Versión 40: Patrón de 177x177.

El Justicialismo se ha distinguido siempre por ofrecer las herramientas más poderosas y de menor consumo para poder hacer nuestra computación de una manera Justa y Soberana. Por tal motivo han de saber que Ubuntu está capacitado para utilizar estos códigos QR en ambos sentidos, tantos para crearlos como para leerlos.

A tal fin se pueden utilizar fotografías de los mismos registradas con una resolución adecuada. La versión 10 del patrón QR puede ser resuelta por una fotografía del código más o menos cercana tomada con una cámara con una resolución de 640x480 píxels (por ejemplo, las webcams "VGA" de calidad más mediocre.

Para disponer nuestro sistema, lo procedente es instalar primero las aplicaciones necesarias para la terminal. Para ello abirmos una con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt update ;

sudo apt-get install qtqr zbar-tools qrencode ;

Ambos programas nos permiten trabajar de forma muy confiable para lograr resultados bidireccionales.

Por ejemplo, podremos analizar una imagen tomada de un código QR con el programa zbarimg. Si deseamos tomar una fotografía digital de una de ellas, es conveniente que la misma esté tomada de frente y relativamente cerca. Naturalmente que lo ideal es que ocupe el 80% del cuadro, pero es muy probable que funcione con menos. Suponiendo que ya contamos con la fotografía del código QR y asumiento que la misma se llama imagen_cod_qr.jpg, podríamos analizarla desde la terminal Linux ingresando:

zbarimg "imagen_cod_qr.jpg"

El comando de arriba mostrará el texto que se encuentra codificado en la imagen, y lo mostrará en la terminal.

Normalmente también acompañará la información con un mensaje que detalla el tiempo que llevó el análisis, o mensajes de error. Si agregamos al comando anterior la opción -q, no incluirá dichos mensajes de status.

Si en cambio queremos hacer el paso inverso, y generar un código QR a partir de un texto, podremos utilizar.

cat archivo.txt | qrencode -s 10 -o codigo_qr.png

Esto codificará un archivo de entrada archivo.txt y lo codificará en una imágen de un archivo de salida en forma de imágen QR codificada de formato gráfico PNG, llamado en este caso codigo_qr.png.

O también podríamos crear una imagen codificada de un código QR con una dirección URL incrustada en ella, simplemente agregandola. La sintaxis a utilizar sería:

qrencode -s 10 -o up.png https://www.ubuntuperonista.blogspot.com

Naturalmente, si seguimos el estándar Vcard en un archivo, lo podremos utilizar como una alternativa gráfica para extender nuestros datos personales según dicho estándar (que se pueden agregar fácilmente a clientes de mensajería). De esta manera lo podremos incorporar en tarjetas de presentación impresas, y también contar con el archivo .vcf o .vcard de referencia.

El programa QtQR en tanto permite hacer esto de una manera gráfica. Lo ejecutamos desde Aplicaciones / Gráficos / QtQR. Se abrirá una ventana dividida en dos paneles principales. Primero debemos delimintar la categoría de trabajo (podremos elegir texto, URL, marcador, contactos de agenda electrónica, SMS, MMS, etc. También podremos especificar la escala de los píxels y el nivel de corrección de error. Una vez introducido los datos QtQR irá generando la gráfica QR codificada.

Para leer un código QR tenemos dos posibilidades: utilizar un archivo ya obtenido, o bien escanearlo por medio de una cámara web (si está conectada al sistema). Para ello presionamos el botón Decodificar y elegimos A través de Webcam.

Debemos asegurarnos que la webcam esté en foco (muchos modelos tienen un lente rotativo que debemos ajustar a mano). Finalmente acercamos la misma al código QR. Si la operación es exitosa, el sistema mostrará un recuadro de color verde sobreimpreso sobre el código QR. Debemos cerrar la ventana de captura de video presionando cualquier tecla.