¿Cómo generar un código QR con Python?

¿Alguna vez te has preguntado cómo funcionan y cómo se generan los códigos QR? ¿Alguna vez has querido enviar a alguien tus datos de contacto, la clave del wifi de tu casa o el enlace a un sitio web de una manera fácil y rápida? Si has respondido que sí a alguna de estas preguntas aquí te digo como hacerlo.


En este tutorial aprenderemos cómo crear un código QR utilizando solo 6 líneas de código, el lenguaje de programación Python y las librerías qrcode y pillow.

¡Manos a la obra!

¿Qué es un código QR?

El código QR viene de la abreviatura de Quick Response code ó código de respuesta rápida, fue inventado originalmente en 1994 por la compañía japonesa Denso Wave, subsidiaria de Toyota. Es un código de barras 2D que contiene patrones negros sobre un fondo blanco (también puede ser de colores siempre y cuando estos sean contrastantes). Los códigos QR son capaces de almacenar grandes cantidades de datos en un pequeño espacio, pueden almacenar texto, enlaces y básicamente cualquier información que desees… ¡y puedes acceder a esta información simplemente escaneando el código desde tu celular!

Los códigos QR son importantísimos ya que nos brindan una forma sencilla de acceder a información desde una fuente no convencional (por ejemplo, en una hoja de papel). Imprimir un código QR sobre una hoja de papel es una experiencia mucho mejor y más rápida para el usuario que colocar un enlace a un sitio web. Debido a esto, los códigos QR ahora se usan más comúnmente que los códigos de barras UPC y se encuentran en todos lados, desde tarjetas de presentación, anuncios en revistas, menús de restaurantes hasta anuncios del Superbowl.

¡Aprendamos a crear uno!

Configuración

Abre el editor de código Python de tu elección (yo uso VS Code) y crea un nuevo archivo llamado codigo_qr.py.

Nota: puedes nombrar tu archivo con cualquier nombre excepto qrcode.py. Esto se debe a que qrcode.py es un archivo que ya existe como parte de la biblioteca qrcode que usaremos y nos generaría un error ya que sobrescribirá las funciones de la biblioteca.

Para empezar, necesitamos instalar dos bibliotecas:

• La biblioteca qrcode: esta biblioteca nos permite realizar todas nuestras operaciones relacionadas con códigos QR.

• La biblioteca pillow: Esta biblioteca nos ayuda a procesar y guardar imágenes.

Para instalar qrcode y pillow ejecuta el siguiente comando desde la terminal en VS Code:

pip instalar qrcode pillow

Yo tengo instaladas las versiones 7.3.1 de qrcode y 9.2.0 de pillow, el código debe de funcionar con cualquier versión relativamente reciente de estas dos librerías.

A continuación, agrega la siguiente línea de código a la primera línea de codigo_qr.py:

import qrcode

Solo necesitamos importar qrcode, porque pillow se importa implícitamente.

Creando el Código QR

Vamos a crear un código QR que nos muestre uno de mis videos musicales favoritos en YouTube.

Podemos almacenar la URL de YouTube en una variable llamada enlace_sitioweb:

enlace_sitio web = 'https://www.youtube.com/watch?v=-_3dc6X-Iwo'

A continuación creamos una instancia de qrcode. Dado que es una biblioteca de Python, podemos llamar al constructor del paquete para crear un objeto qrcode, personalizado según nuestras especificaciones.

En este ejemplo, crearemos un código QR versión 1 con un tamaño de cuadro de 5 y borde de 5.

qr = qrcode.QRCode(version = 1, box_size = 5, border = 5)

• El parámetro de version es un número entero del 1 al 40 que controla el tamaño del código QR.

• El parámetro box_size controla cuántos píxeles tiene cada “caja” del código QR.

• El parámetro de borde controla cuántos cuadros de grosor debe tener el borde.

Visita la documentación de qrcode para obtener más información sobre los parámetros en qrcode.QRCode(…).

Luego, los datos (específicamente, el enlace que especificamos antes) se agregan al código QR, usando .add_data(). Luego, el código QR se genera usando .make():

qr.add_data(enlace_sitio web)
qr.make()

Finalmente, guardamos este código QR creado en un objeto de pillow img usando qr.make_image():

img = qr.make_image(fill_color = 'black', back_color = 'white')

• Establecemos el color del código fill_color a negro.

• Establecemos el color de fondo back_color en blanco.

Finalmente, guardamos el archivo usando el comando save() de pillow. Especificamos el nombre del archivo entre comillas, que en nuestro caso es youtube_qr.png.

img.save('codigoqr_enlace.png')

¡Hemos terminado!

Aquí está el código completo:

import qrcode

enlace = 'https://www.youtube.com/watch?v=-_3dc6X-Iwo'
qr = qrcode.QRCode(version = 1, box_size = 5, border = 5)
qr.add_data(enlace)
qr.make()

img = qr.make_image(fill_color = 'black', back_color = 'white')
img.save('codigoqr_enlace.png')

Al ejecutar el script de Python deberías ver la imagen codigoqr_enlace.png aparecer en el panel del lado izquierdo de VS Code, abre el archivo para que veas el resultado, haz la prueba de escanearlo con tu teléfono.

Creando un código QR para Compartir el acceso WiFi

Ahora vamos a crear un código QR para compartir el acceso WiFi de nuestra casa u oficina. El código es básicamente el mismo, solo necesitamos los datos de nuestra conexión WiFi y estas las asignamos a una variable que llamaremos enlace, en mi caso el tipo de conexión es WPA, el nombre de la red es: IZZI-B545-5G y el password es gJ3PeGcfRTZtxRCNn5

enlace = f"WIFI:T:WPA;S:{'IZZI-B545-5G'};P:{'gJ3PeGcfRTZtxRCNn5'};;"

El código queda así:

import qrcode

enlace = f"WIFI:T:WPA;S:{'IZZI-B545-5G'};P:{'gJ3PeGcfRTZtxRCNn5'};;"

qr = qrcode.QRCode(version = 1, box_size = 5, border = 5)
qr.add_data(enlace)
qr.make()

img = qr.make_image(fill_color = 'black', back_color = 'white')
img.save('compartir_wifi.png')

Y el resultado es este:

Deja un comentario