Spaces:
Sleeping
Sleeping
File size: 4,732 Bytes
5779747 2c4a99a e50e82a 2c4a99a 5779747 2c4a99a 5779747 2c4a99a 5e4c3ce 2c4a99a 15c9d3d 2c4a99a 9e696a0 2c4a99a 1f9c759 9e696a0 1f9c759 2c4a99a 1f9c759 2c4a99a 1f9c759 2c4a99a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
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!") |