Spaces:
Runtime error
Runtime error
File size: 1,781 Bytes
7324c34 cee8667 1d0a868 fb19d78 e992434 7324c34 e992434 7324c34 cee8667 7324c34 1d0a868 e992434 7324c34 e992434 1d0a868 e992434 cee8667 e992434 1d0a868 e992434 cee8667 e992434 cee8667 e992434 cee8667 1d0a868 e992434 1d0a868 e992434 1d0a868 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 59 60 61 62 |
import gradio as gr
import qrcode
from PIL import Image, ImageDraw
import io
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(lines=1, 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.Color(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() |