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()