File size: 943 Bytes
9f8673a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b75b0f8
9f8673a
 
 
 
b75b0f8
 
9f8673a
 
 
b75b0f8
9f8673a
b75b0f8
 
 
 
9f8673a
 
 
 
 
b75b0f8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import qrcode
import gradio as gr
from io import BytesIO

def generate_qr(url):
    """Generates a QR code from a given URL and returns the image and download link."""
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4
    )
    qr.add_data(url)
    qr.make(fit=True)
    
    img = qr.make_image(fill="black", back_color="white")

    # Save to BytesIO for download
    img_io = BytesIO()
    img.save(img_io, format="PNG")
    img_io.seek(0)
    
    # Ensure file remains open when accessed
    return img, ("qr_code.png", img_io.getvalue())

iface = gr.Interface(
    fn=generate_qr,
    inputs=gr.Textbox(label="Enter URL"),
    outputs=[
        gr.Image(label="Generated QR Code"),
        gr.File(label="Download QR Code")
    ],
    title="QR Code Generator",
    description="Enter a URL to generate and download a QR Code."
)

iface.launch()