File size: 1,195 Bytes
7cf86e5
35429ce
7cf86e5
 
 
 
 
 
 
 
 
 
 
35429ce
7cf86e5
 
 
 
 
 
4bb8e93
 
7cf86e5
 
 
 
 
 
 
 
 
 
 
 
 
 
b0b394a
7cf86e5
 
 
 
 
 
 
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
import gradio as gr
from utils import EN_US

ZH2EN = {
    "二维码输出尺寸": "Image size",
    "输入文本": "Input text",
    "输出二维码": "QR code",
    "输入文字在线生成二维码": "Enter text to generate a QR code.",
    "状态栏": "Status",
}


def _L(zh_txt: str):
    return ZH2EN[zh_txt] if EN_US else zh_txt


def infer(img_size: int, input_txt: str):
    status = "Success"
    url = None
    try:
        if (not input_txt) or input_txt == "0":
            raise ValueError("Please input valid text!")

        url = f"https://api.qrserver.com/v1/create-qr-code/?size={img_size}x{img_size}&data={input_txt}"

    except Exception as e:
        status = f"{e}"

    return status, url


def qrcode():
    return gr.Interface(
        fn=infer,
        inputs=[
            gr.Slider(35, 1000, 217, label=_L("二维码输出尺寸")),
            gr.Textbox(label=_L("输入文本"), placeholder=_L("输入文字在线生成二维码")),
        ],
        outputs=[
            gr.Textbox(label=_L("状态栏"), show_copy_button=True),
            gr.Image(label=_L("输出二维码"), show_share_button=False),
        ],
        flagging_mode="never",
    )