|
import os |
|
import uuid |
|
from amzqr import amzqr |
|
from PIL import Image |
|
import streamlit as st |
|
|
|
class GeneradorQR: |
|
|
|
|
|
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, |
|
version=1, |
|
level='H', |
|
picture=self.__fondo, |
|
colorized=True, |
|
contrast=1.0, |
|
brightness=0.8, |
|
save_name=self.__nombre_archivo, |
|
save_dir=os.getcwd() |
|
) |
|
|
|
def get_qrcode(self): |
|
return self.__qr_name |
|
|
|
|
|
def generar_qr(hipervinculo, fondo): |
|
print(type(fondo)) |
|
|
|
fondo_path = f"{uuid.uuid4()}_fondo.png" |
|
fondo.save(fondo_path) |
|
nombre_archivo = f"{uuid.uuid4()}.png" |
|
|
|
print(f'nombre_archivo:{nombre_archivo}') |
|
print(f'hipervinculo:{hipervinculo}') |
|
print(f'fondo:{fondo_path}') |
|
generador_qr = GeneradorQR(nombre_archivo=nombre_archivo, |
|
hipervinculo=hipervinculo, |
|
fondo=fondo_path) |
|
generador_qr.generate_qrcode() |
|
qr_path = generador_qr.get_qrcode() |
|
return qr_path |
|
|
|
|
|
st.title("Generador de c贸digo QR con fondo personalizado") |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
with col1: |
|
hipervinculo = st.text_input("Hiperv铆nculo") |
|
fondo = st.file_uploader("Imagen de fondo", type=["png", "jpg", "jpeg"]) |
|
with col2: |
|
if hipervinculo and fondo: |
|
fondo_imagen = Image.open(fondo) |
|
qr_path = generar_qr(hipervinculo, fondo_imagen) |
|
st.image(qr_path, caption="C贸digo QR generado", use_column_width=True) |
|
st.success(f"C贸digo QR generado") |
|
|