Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy as np | |
| import qrcode as qr | |
| from PIL import Image | |
| import cv2 | |
| # build qr code encoder function | |
| def qr_code_encoder(url, box_size, border_width, fill_color, back_color): | |
| """ | |
| Generate a QR code from a given URL. | |
| Args: | |
| url: The URL to generate the QR code for. | |
| fill_color: The color to fill the QR code with. | |
| back_color: The background color of the QR code. | |
| Returns: | |
| The QR code as a numpy array. | |
| """ | |
| try: | |
| qr_code = qr.QRCode(version=1, box_size=box_size, border=border_width) | |
| qr_code.add_data(url) | |
| qr_code.make(fit=True) | |
| img = qr_code.make_image(fill_color=fill_color, back_color=back_color) | |
| return np.array(img) | |
| except Exception as e: | |
| gr.Info("Failed to generate QR code!") | |
| # build Gradio MCP frontend | |
| qr_code_encoder = gr.Interface(fn=qr_code_encoder, | |
| title="QR Code MCP Server", | |
| inputs = [gr.Text(label = "URL"), | |
| gr.Slider(label = "Select Box Size:",minimum=5,maximum = 20,value = 10,step=1), | |
| gr.Slider(label="Select Border Width:",minimum=1,maximum=10,value=5,step=1), | |
| gr.Radio(label = "Select Fill Color:", | |
| choices = ["black","green","blue"], | |
| value="black"), | |
| gr.Text(label = "Enter Background Color")], | |
| outputs = gr.Image(type="pil",label="QR Code")) | |
| # | |
| if __name__ == "__main__": | |
| qr_code_encoder.launch(mcp_server = True) |