Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -4,7 +4,7 @@ from PIL import Image
|
|
4 |
import gradio as gr
|
5 |
import tempfile
|
6 |
import numpy as np
|
7 |
-
import
|
8 |
|
9 |
|
10 |
# Function to generate a QR code
|
@@ -19,11 +19,11 @@ def generate_qr(data):
|
|
19 |
qr.make(fit=True)
|
20 |
img = qr.make_image(fill="black", back_color="white")
|
21 |
|
22 |
-
# Save to a temporary file
|
23 |
temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".png")
|
24 |
img.save(temp_file.name, format="PNG")
|
25 |
-
temp_file.close() # Ensure file is
|
26 |
-
return temp_file.name
|
27 |
|
28 |
|
29 |
# Function to read a QR code
|
@@ -46,6 +46,7 @@ def create_gradio_interface():
|
|
46 |
with gr.Blocks() as demo:
|
47 |
gr.Markdown("## QR Code Tool: Generate and Decode with Ease")
|
48 |
|
|
|
49 |
with gr.Tab("Generate QR Code"):
|
50 |
with gr.Row():
|
51 |
data_input = gr.Textbox(placeholder="Enter text or URL here...", label="Data to Encode")
|
@@ -56,7 +57,10 @@ def create_gradio_interface():
|
|
56 |
qr_file = gr.File(label="Download QR Code")
|
57 |
|
58 |
def generate_qr_interface(data):
|
59 |
-
|
|
|
|
|
|
|
60 |
return qr_image_pil, qr_file_path
|
61 |
|
62 |
generate_button.click(
|
@@ -65,6 +69,7 @@ def create_gradio_interface():
|
|
65 |
outputs=[qr_image, qr_file],
|
66 |
)
|
67 |
|
|
|
68 |
with gr.Tab("Read QR Code"):
|
69 |
with gr.Row():
|
70 |
image_input = gr.Image(type="pil", label="Upload QR Code Image")
|
@@ -73,6 +78,8 @@ def create_gradio_interface():
|
|
73 |
decoded_data = gr.Textbox(label="Decoded Data")
|
74 |
|
75 |
def read_qr_interface(img):
|
|
|
|
|
76 |
return read_qr(img)
|
77 |
|
78 |
decode_button.click(
|
|
|
4 |
import gradio as gr
|
5 |
import tempfile
|
6 |
import numpy as np
|
7 |
+
import os
|
8 |
|
9 |
|
10 |
# Function to generate a QR code
|
|
|
19 |
qr.make(fit=True)
|
20 |
img = qr.make_image(fill="black", back_color="white")
|
21 |
|
22 |
+
# Save QR code image to a temporary file
|
23 |
temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".png")
|
24 |
img.save(temp_file.name, format="PNG")
|
25 |
+
temp_file.close() # Ensure the file is saved
|
26 |
+
return temp_file.name # Return the file path
|
27 |
|
28 |
|
29 |
# Function to read a QR code
|
|
|
46 |
with gr.Blocks() as demo:
|
47 |
gr.Markdown("## QR Code Tool: Generate and Decode with Ease")
|
48 |
|
49 |
+
# Tab for generating QR codes
|
50 |
with gr.Tab("Generate QR Code"):
|
51 |
with gr.Row():
|
52 |
data_input = gr.Textbox(placeholder="Enter text or URL here...", label="Data to Encode")
|
|
|
57 |
qr_file = gr.File(label="Download QR Code")
|
58 |
|
59 |
def generate_qr_interface(data):
|
60 |
+
if not data.strip():
|
61 |
+
raise ValueError("Input text cannot be empty!")
|
62 |
+
qr_file_path = generate_qr(data)
|
63 |
+
qr_image_pil = Image.open(qr_file_path)
|
64 |
return qr_image_pil, qr_file_path
|
65 |
|
66 |
generate_button.click(
|
|
|
69 |
outputs=[qr_image, qr_file],
|
70 |
)
|
71 |
|
72 |
+
# Tab for reading QR codes
|
73 |
with gr.Tab("Read QR Code"):
|
74 |
with gr.Row():
|
75 |
image_input = gr.Image(type="pil", label="Upload QR Code Image")
|
|
|
78 |
decoded_data = gr.Textbox(label="Decoded Data")
|
79 |
|
80 |
def read_qr_interface(img):
|
81 |
+
if img is None:
|
82 |
+
raise ValueError("Please upload a valid QR code image!")
|
83 |
return read_qr(img)
|
84 |
|
85 |
decode_button.click(
|