#"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()