#"https://docs.google.com/forms/u/0/d/e/1lCvVNDdgnYaIh8TVHPW91S_LFhy1ep97vx1-cHqrruI/formResponse"; #data.append("entry.2013313277", qrText); #data.append("entry.286817265", lat); #data.append("entry.518488535", lng); import gradio as gr import cv2 import numpy as np from PIL import Image # ======================== # Scan QR # ======================== def scan_qr(image): if image is None: return "" img = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR) detector = cv2.QRCodeDetector() data, bbox, _ = detector.detectAndDecode(img) return data if data else "❌ No QR code detected" # ======================== # Gradio UI # ======================== with gr.Blocks() as demo: gr.Markdown("## 📸 Scan QR → Auto GPS → Google Form Sender") qr_image = gr.Image(type="pil", label="Upload QR Code") qr_output = gr.Textbox(label="QR Code Text", elem_id="qr_output_box") scan_btn = gr.Button("Scan QR Code") scan_btn.click(scan_qr, inputs=qr_image, outputs=qr_output) # ================================ # HTML + JS Button # ================================ gr.HTML(""" """) demo.launch()