Spaces:
Runtime error
Runtime error
File size: 1,745 Bytes
7324c34 cee8667 fb19d78 e992434 7324c34 e992434 7324c34 cee8667 7324c34 e992434 7324c34 e992434 cee8667 e992434 cee8667 e992434 cee8667 e992434 cee8667 e992434 cee8667 e992434 cee8667 e992434 cee8667 e992434 |
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
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() |