| # For QRCode spec, see the link below: | |
| # https://www.qrcode.com/en/about/standards.html | |
| import qrcode | |
| import gradio as gr | |
| def url_to_qrcode(url, box_size, version): | |
| q = qrcode.QRCode( | |
| version = version, # QRCode 的方塊數 | |
| error_correction=qrcode.ERROR_CORRECT_H, | |
| box_size=box_size, # 單一方塊的邊長點數 | |
| border=20 | |
| ) | |
| q.add_data(url) | |
| q.make() | |
| img = q.make_image() | |
| img.save("qrcode.png") | |
| return "qrcode.png" | |
| ui = gr.Interface( | |
| fn=url_to_qrcode, | |
| inputs=[ | |
| gr.Text( | |
| label="請輸入 URL:" | |
| ), | |
| gr.Slider( | |
| label="QRcode 方塊單邊點數:", | |
| minimum=2, | |
| maximum=100, | |
| value=4, | |
| step=1 | |
| ), | |
| gr.Slider( | |
| label="Version:", | |
| minimum=1, | |
| maximum=40, | |
| value=1, | |
| step=1 | |
| ) | |
| ], | |
| outputs=gr.Image( | |
| type="filepath", | |
| label="" | |
| ) | |
| ) | |
| ui.launch() | |