import os import uuid # Permite generar valores aleatorios from amzqr import amzqr from PIL import Image import gradio as gr class GeneradorQR(): # Constructor def __init__(self, fondo, hipervinculo, nombre_archivo): self.__fondo = fondo self.__hipervinculo = hipervinculo self.__nombre_archivo = nombre_archivo def generate_qrcode(self): _, _, self.__qr_name = amzqr.run( self.__hipervinculo, # Hipervinculo version=1, level='H', picture=self.__fondo, # Imagen de fondo colorized=True, contrast=1.0, brightness=0.8, save_name=self.__nombre_archivo, # Nombre del archivo con el código QR save_dir=os.getcwd() ) def get_qrcode(self): return self.__qr_name # Función para Gradio def generar_qr(hipervinculo, fondo): nombre_archivo = f"{uuid.uuid4()}.png" # Nombre del archivo imagen. Es un valor aleatorio # Instanciar la clase GeneradorQR print(f'nombre_archivo:{nombre_archivo}') print(f'hipervinculo:{hipervinculo}') print(f'fondo:{fondo}') generador_qr = GeneradorQR(nombre_archivo=nombre_archivo, hipervinculo=hipervinculo, fondo=fondo) generador_qr.generate_qrcode() # Genera archivo imagen con el código QR qr_path = generador_qr.get_qrcode() # Obtiene ruta del archivo imagen con el código QR return qr_path # Interfaz de Gradio interface = gr.Interface( fn=generar_qr, inputs=[ gr.Textbox(label="Hipervínculo"), gr.Image(type="filepath", label="Imagen de fondo") ], outputs=gr.Image(label="Código QR generado"), title="Generador de código QR con fondo personalizado" ) interface.launch()