import streamlit as st import pandas as pd from datetime import datetime import os import cv2 from PIL import Image import numpy as np from imutils.video import VideoStream import pypdf import pikepdf import pdfminer.high_level import fpdf import pdfkit import pdfplumber import fitz # pymupdf import borb.pdf import pdf2image import vidgear.gears import moviepy.editor import av import pydub import sounddevice as sd import soundfile as sf # 🌟🔥 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_pypdf(): with open("demo.pdf", "w") as f: f.write("Hello from pypdf!") reader = pypdf.PdfReader("demo.pdf") return reader.pages[0].extract_text() if reader.pages else "No text found!" 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_pdfminer(): with open("demo.pdf", "w") as f: f.write("PDFminer magic!") text = pdfminer.high_level.extract_text("demo.pdf") return text 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_pdfkit(): pdfkit.from_string("

Hello PDFkit!

", "demo_pdfkit.pdf") return "demo_pdfkit.pdf" def demo_pdfplumber(): with open("demo.pdf", "w") as f: f.write("Plumb this text!") with pdfplumber.open("demo.pdf") as pdf: return pdf.pages[0].extract_text() if pdf.pages else "No text!" 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_borb(): doc = borb.pdf.Document() page = borb.pdf.Page() doc.append_page(page) doc.save("demo_borb.pdf") return "demo_borb.pdf" def demo_pdf2image(): with open("demo.pdf", "w") as f: f.write("Image this!") images = pdf2image.convert_from_path("demo.pdf") images[0].save("demo_pdf2image.jpg") return "demo_pdf2image.jpg" 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 def demo_sounddevice(): audio = sd.rec(int(2 * 44100), samplerate=44100, channels=1) sd.wait() sf.write("demo_sounddevice.wav", audio, 44100) return "demo_sounddevice.wav" # 🌟 Main Demo Interface st.sidebar.header("🎮 Demo Controls") demo_type = st.sidebar.selectbox("Choose a Demo Category", ["PDF", "Image Capture", "Video Capture", "Audio Capture"]) # 📜 PDF Demos if demo_type == "PDF": st.subheader("📜 PDF Powerhouse") demo = st.selectbox("Pick a PDF Demo", [ "pypdf", "pikepdf", "pdfminer.six", "fpdf2", "pdfkit", "pdfplumber", "pymupdf", "borb", "pdf2image" ]) if st.button("Run PDF Demo"): with st.spinner("Running demo..."): if demo == "pypdf": result = demo_pypdf() st.write("Extracted Text:", result) elif demo == "pikepdf": result = demo_pikepdf() st.download_button("Download PDF", open(result, "rb").read(), file_name=result) elif demo == "pdfminer.six": result = demo_pdfminer() st.write("Extracted Text:", result) elif demo == "fpdf2": result = demo_fpdf() st.download_button("Download PDF", open(result, "rb").read(), file_name=result) elif demo == "pdfkit": result = demo_pdfkit() st.download_button("Download PDF", open(result, "rb").read(), file_name=result) elif demo == "pdfplumber": result = demo_pdfplumber() st.write("Extracted Text:", result) elif demo == "pymupdf": result = demo_pymupdf() st.download_button("Download PDF", open(result, "rb").read(), file_name=result) elif demo == "borb": result = demo_borb() st.download_button("Download PDF", open(result, "rb").read(), file_name=result) elif demo == "pdf2image": result = demo_pdf2image() st.image(result, caption="Converted PDF to Image") # 📸 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..."): 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!") # 🎥 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..."): 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!") # 🎵 Audio Capture Demos elif demo_type == "Audio Capture": st.subheader("🎵 Audio Aces") demo = st.selectbox("Pick an Audio Demo", ["sounddevice"]) if st.button("Run Audio Demo"): with st.spinner("Recording audio (2 seconds)..."): if demo == "sounddevice": result = demo_sounddevice() st.audio(result, format="audio/wav") st.download_button("Download Audio", open(result, "rb").read(), file_name=result) # 📊 Results Display st.write("### Results") st.write("Check out your impressive outputs above!")