Generar código QR a partir de imágenes usando Python

Generar código QR a partir de imágenes usando Python


Lenguajes de programación Python

Los orígenes del Quick Response Code (QR code para abreviar) se remontan a los años 90, pero hasta hace poco tiempo no se adoptaron ampliamente en el uso común. Gracias a los smartphone y al distanciamiento social debido al COVID-19, los códigos QR ahora son una parte integral de nuestra vida.

Los códigos QR son bastante útiles: pueden almacenar todo tipo de datos, como texto, números de identificación y direcciones URL. Visualmente, sin embargo, la mayoría de los códigos QR son bastante aburridos. Para hacer que un código QR sea intrigante y bonito a la vista, veamos cómo generar códigos QR escaneables a partir de imágenes utilizando el lenguaje de programación Python, uno de los lenguajes de programación más utilizados en el mundo.

¿Para qué sirve Python? Python por su versatilidad y compacidad es el lenguaje de programación más adecuado para este tipo de tareas. Pero a gran escala, la programación en Python también permite crear algoritmos de inteligencia artificial, desarrollar sitios web o realizar análisis de datos complejos.

Aprender Python es un objetivo importante si deseas seguir una carrera como desarrollador de software. Además, te permite llevar a cabo estas pequeñas joyas de la programación, que en Python se vuelven muy fáciles de implementar.

Step 1: elige una imagen.

Podemos elegir cualquier imagen en este step, pero consideramos que es mejor utilizar una imagen de dimensiones 1:1 (mismo ancho y alto) porque tendremos que redimensionarla para que se ajuste a un cuadrado.

# Image must be at least 186x186px 
img_url = 'https://upload.wikimedia.org/wikipedia/commons/1/16/Fox_-_British_Wildlife_Centre_%2817429406401%29.jpg'

Step 2: elegir una URL

El texto para nuestro QR code está limitado a 100 caracteres. Puedes usar un acortador de URL si necesitas usar una URL más larga. (Por cierto, no necesitamos usar una URL en este step, cualquier texto puede codificarse en el código QR resultante. Depende de ti).

# Maximum 100 characters 
text = 'https://en.wikipedia.org/wiki/Red_fox'

Step 3: descarga y procesa la imagen

En este paso, usaremos una biblioteca específica de Python para descargar una imagen desde una URL. La biblioteca se llama PIL. Luego necesitamos cambiar el tamaño de la imagen que necesitaremos más adelante. Las bibliotecas de Python son recursos extremadamente útiles, además de ser casi todas open-source, muchas son esenciales para simplificar ciertas tareas. La programación en Python requiere el conocimiento de un buen número de bibliotecas, para poder implementar y realizar diversas tareas.

from PIL import Image 
import requests 
im = Image.open(requests.get(img_url, stream=True).raw) 
min_width_height = min(im.size) 
im = im.crop(((im.size[0] - min_width_height)/2, (im.size[1] - min_width_height)/2, min_width_height, min_width_height))
 
im.save('image_source.png') 

im1 = im.resize((186,186), Image.Resampling.LANCZOS) 
im1.save('image_186x186.png') 

im2 = im.resize((93,93), Image.Resampling.LANCZOS) 
im2.save('image_93x93.png')

Step 4: generamos el QR code

Usando la repository en github: https://github.com/xyzzy/qrpicture para generar el código. La creación de una foto QR es un proceso de dos partes.

Primero, necesitamos crear una imagen monocromática interpolada de 93x93 píxeles. Esta imagen se superpone con píxeles QR obligatorios para garantizar que la imagen resultante sea un código QR válido. Para hacer esto, sigue la guía para instalar el generador de códigos QR y usa este comando para completar el proceso:

!./qrwork $text image_93x93.png output_bw.png

El output se guardará directamente en filesystem y podremos verlo fácilmente a través de la biblioteca IPython.

from IPython import display 
display.Image("./output_bw.png")

El juego está hecho. Después de obtener la imagen en formato de código QR, puedes personalizarla como prefieras con la ayuda de paquetes o bibliotecas de Python, incluso desde el mismo repository en github y que se pueden instalar fácilmente con el comando "pip install...".

El código de Python para generar un código QR a partir de una imagen es realmente simple. Unas pocas líneas para una potencia de aplicación verdaderamente notable. La compacidad es la fuerza de este lenguaje y aprender Python resulta ser una ventaja muy influyente cuando se trata de software house que contratan desarrolladores.

Curso de programación Aulab Hackademy

Conviértete en Desarrollador weben 6 meses

Descubre el bootcamp de programación Hackademy

Programa Completo

© 2022 Aulab. Todos los derechos reservados • P.IVA: IT07647440721 • Política de privacidad