Spaces:
Runtime error
Runtime error
import gradio as gr | |
import qrcode | |
def generate_qr_code(url, gradient_color1, gradient_color2, logo, qr_color): | |
# Create QR code instance | |
qr = qrcode.QRCode( | |
version=1, | |
error_correction=qrcode.constants.ERROR_CORRECT_L, | |
box_size=10, | |
border=4, | |
) | |
# Add URL to the QR code | |
qr.add_data(url) | |
qr.make(fit=True) | |
# Create the QR code image | |
qr_image = qr.make_image(fill_color=qr_color, back_color="#ffffff") # Set QR code color here | |
# Add gradient if colors are provided | |
if gradient_color1 and gradient_color2: | |
qr_image = qr_image.convert("RGB") | |
qr_image = qr_image.resize((500, 500)) | |
gradient = Image.new("RGB", qr_image.size) | |
grad = ImageDraw.Gradient(grad.size, "LR", gradient_color1, gradient_color2) | |
qr_image = Image.blend(qr_image, gradient, 0.5) | |
# Add logo if provided | |
if logo: | |
logo_image = Image.open(logo).convert("RGBA") | |
qr_image.paste(logo_image, (125, 125), logo_image) | |
# Save the QR code to a byte stream | |
qr_byte_stream = io.BytesIO() | |
qr_image.save(qr_byte_stream, format="PNG") | |
qr_byte_stream.seek(0) | |
return qr_byte_stream.read() | |
inputs = [ | |
gr.inputs.Textbox(label="URL to Site"), | |
gr.inputs.ColorPicker(label="Gradient Color 1 (Optional)"), | |
gr.inputs.ColorPicker(label="Gradient Color 2 (Optional)"), | |
gr.inputs.Image(label="Logo (Optional)"), | |
gr.inputs.ColorPicker(label="QR Code Color"), | |
] | |
outputs = gr.outputs.Image(type="bytes") | |
gr.Interface( | |
fn=generate_qr_code, | |
inputs=inputs, | |
outputs=outputs, | |
title="QR Code Generator", | |
description="Generate QR codes with customizable options", | |
theme="huggingface", | |
).launch() |