Spaces:
Sleeping
Sleeping
| 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!") |