Upload 2 files
Browse files- app.py +62 -0
- requirements.txt +2 -0
app.py
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import uuid
|
3 |
+
from amzqr import amzqr
|
4 |
+
from PIL import Image
|
5 |
+
import streamlit as st
|
6 |
+
|
7 |
+
class GeneradorQR:
|
8 |
+
|
9 |
+
# Constructor
|
10 |
+
def __init__(self, fondo, hipervinculo, nombre_archivo):
|
11 |
+
self.__fondo = fondo
|
12 |
+
self.__hipervinculo = hipervinculo
|
13 |
+
self.__nombre_archivo = nombre_archivo
|
14 |
+
|
15 |
+
def generate_qrcode(self):
|
16 |
+
_, _, self.__qr_name = amzqr.run(
|
17 |
+
self.__hipervinculo, # Hiperv铆nculo
|
18 |
+
version=1,
|
19 |
+
level='H',
|
20 |
+
picture=self.__fondo, # Imagen de fondo
|
21 |
+
colorized=True,
|
22 |
+
contrast=1.0,
|
23 |
+
brightness=0.8,
|
24 |
+
save_name=self.__nombre_archivo, # Nombre del archivo con el c贸digo QR
|
25 |
+
save_dir=os.getcwd()
|
26 |
+
)
|
27 |
+
|
28 |
+
def get_qrcode(self):
|
29 |
+
return self.__qr_name
|
30 |
+
|
31 |
+
# Funci贸n para Streamlit
|
32 |
+
def generar_qr(hipervinculo, fondo):
|
33 |
+
print(type(fondo)) #
|
34 |
+
# Guarda la imagen de fondo en un archivo temporal
|
35 |
+
fondo_path = f"{uuid.uuid4()}_fondo.png"
|
36 |
+
fondo.save(fondo_path)
|
37 |
+
nombre_archivo = f"{uuid.uuid4()}.png" # Nombre aleatorio del archivo
|
38 |
+
# Instanciar la clase GeneradorQR
|
39 |
+
print(f'nombre_archivo:{nombre_archivo}')
|
40 |
+
print(f'hipervinculo:{hipervinculo}')
|
41 |
+
print(f'fondo:{fondo_path}')
|
42 |
+
generador_qr = GeneradorQR(nombre_archivo=nombre_archivo,
|
43 |
+
hipervinculo=hipervinculo,
|
44 |
+
fondo=fondo_path)
|
45 |
+
generador_qr.generate_qrcode() # Genera archivo imagen con el c贸digo QR
|
46 |
+
qr_path = generador_qr.get_qrcode() # Obtiene ruta del archivo imagen con el c贸digo QR
|
47 |
+
return qr_path
|
48 |
+
|
49 |
+
# Interfaz de Streamlit
|
50 |
+
st.title("Generador de c贸digo QR con fondo personalizado")
|
51 |
+
|
52 |
+
# Input
|
53 |
+
col1, col2 = st.columns(2)
|
54 |
+
with col1:
|
55 |
+
hipervinculo = st.text_input("Hiperv铆nculo")
|
56 |
+
fondo = st.file_uploader("Imagen de fondo", type=["png", "jpg", "jpeg"])
|
57 |
+
with col2:
|
58 |
+
if hipervinculo and fondo:
|
59 |
+
fondo_imagen = Image.open(fondo)
|
60 |
+
qr_path = generar_qr(hipervinculo, fondo_imagen)
|
61 |
+
st.image(qr_path, caption="C贸digo QR generado", use_column_width=True)
|
62 |
+
st.success(f"C贸digo QR generado")
|
requirements.txt
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
ipython==8.29.0
|
2 |
+
amzqr==0.0.1
|