File size: 942 Bytes
a27b469
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72bdd25
 
 
 
a27b469
72bdd25
a27b469
 
 
 
 
72bdd25
 
a27b469
 
72bdd25
a27b469
 
 
 
 
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
import qrcode
import gradio as gr
from io import BytesIO
from PIL import Image

def generate_qr(url):
    if not url:
        return None

    qr = qrcode.QRCode(
        version=1,
        box_size=10,
        border=4
    )
    qr.add_data(url)
    qr.make(fit=True)

    img = qr.make_image(fill_color="black", back_color="white")

    # 讬爪讬专转 转诪讜谞转 RGB (讗讬谉 砖拽讬驻讜转)
    img = img.convert("RGB")

    # 砖诪讬专讛 诇-JPG 讘讝讬讻专讜谉
    buf = BytesIO()
    img.save(buf, format="JPEG", quality=95)
    buf.seek(0)

    return Image.open(buf)

with gr.Blocks() as demo:
    gr.Markdown("# QR Code Generator (JPG Version)")
    gr.Markdown("讛讻谞住 讻转讜讘转 讜拽讘诇 QR 拽讜讚 讻-JPG")

    url_input = gr.Textbox(label="Enter URL")
    output_img = gr.Image(label="QR Code (JPG)")

    generate_btn = gr.Button("Generate QR")
    generate_btn.click(generate_qr, inputs=url_input, outputs=output_img)

demo.launch()