import streamlit as st import cv2 from PIL import Image import numpy as np from imutils.video import VideoStream import pikepdf import fpdf import fitz # pymupdf import vidgear.gears # 🌟🔥 Set up the Streamlit UI with an impressive demo style! st.title("🚀 Impressive Library Demo Extravaganza") st.write("Watch these libraries flex their muscles with live demos producing real outputs!") # 📜 Demo Functions def demo_pikepdf(): pdf = pikepdf.Pdf.new() pdf.pages.append(pikepdf.Page(pikepdf.Dictionary())) pdf.save("demo_pikepdf.pdf") return "demo_pikepdf.pdf" def demo_fpdf(): pdf = fpdf.FPDF() pdf.add_page() pdf.set_font("Arial", size=12) pdf.cell(200, 10, txt="FPDF rocks!", ln=True) pdf.output("demo_fpdf.pdf") return "demo_fpdf.pdf" def demo_pymupdf(): doc = fitz.open() page = doc.new_page() page.insert_text((100, 100), "Pymupdf shines!") doc.save("demo_pymupdf.pdf") return "demo_pymupdf.pdf" def demo_opencv_image(): cap = cv2.VideoCapture(0) ret, frame = cap.read() if ret: cv2.imwrite("demo_opencv.jpg", frame) cap.release() return "demo_opencv.jpg" cap.release() return None def demo_imutils(): vs = VideoStream(src=0).start() frame = vs.read() vs.stop() if frame is not None: cv2.imwrite("demo_imutils.jpg", cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)) return "demo_imutils.jpg" return None def demo_vidgear(): stream = vidgear.gears.CamGear(source=0).start() frame = stream.read() stream.stop() if frame is not None: cv2.imwrite("demo_vidgear.jpg", frame) return "demo_vidgear.jpg" return None # 🌟 Main Demo Interface st.sidebar.header("🎮 Demo Controls") demo_type = st.sidebar.selectbox("Choose a Demo Category", ["PDF", "Image Capture", "Video Capture"]) # 📜 PDF Demos if demo_type == "PDF": st.subheader("📜 PDF Powerhouse") demo = st.selectbox("Pick a PDF Demo", ["pikepdf", "fpdf2", "pymupdf"]) if st.button("Run PDF Demo"): with st.spinner("Running demo..."): try: if demo == "pikepdf": result = demo_pikepdf() st.download_button("Download PDF", open(result, "rb").read(), file_name=result) elif demo == "fpdf2": result = demo_fpdf() st.download_button("Download PDF", open(result, "rb").read(), file_name=result) elif demo == "pymupdf": result = demo_pymupdf() st.download_button("Download PDF", open(result, "rb").read(), file_name=result) except Exception as e: st.error(f"Demo failed: {str(e)}") # 📸 Image Capture Demos elif demo_type == "Image Capture": st.subheader("📸 Image Snappers") demo = st.selectbox("Pick an Image Demo", ["opencv-python", "imutils"]) if st.button("Run Image Demo"): with st.spinner("Capturing image..."): try: if demo == "opencv-python": result = demo_opencv_image() if result: st.image(result, caption="Snapped with OpenCV!") else: st.error("Camera not detected!") elif demo == "imutils": result = demo_imutils() if result: st.image(result, caption="Snapped with Imutils!") else: st.error("Camera not detected!") except Exception as e: st.error(f"Demo failed: {str(e)}") # 🎥 Video Capture Demos elif demo_type == "Video Capture": st.subheader("🎥 Video Vanguards") demo = st.selectbox("Pick a Video Demo", ["opencv-python", "vidgear"]) if st.button("Run Video Demo"): with st.spinner("Capturing video frame..."): try: if demo == "opencv-python": result = demo_opencv_image() # Using image capture as a proxy if result: st.image(result, caption="Frame from OpenCV Video!") else: st.error("Camera not detected!") elif demo == "vidgear": result = demo_vidgear() if result: st.image(result, caption="Frame from VidGear Video!") else: st.error("Camera not detected!") except Exception as e: st.error(f"Demo failed: {str(e)}") # 📊 Results Display st.write("### Results") st.write("Check out your impressive outputs above!")