awacke1 commited on
Commit
787b7f8
ยท
verified ยท
1 Parent(s): 0b6db21

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +134 -0
app.py ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import cv2
3
+ from PIL import Image
4
+ import numpy as np
5
+ from imutils.video import VideoStream
6
+ import pikepdf
7
+ import fpdf
8
+ import fitz # pymupdf
9
+ import vidgear.gears
10
+
11
+ # ๐ŸŒŸ๐Ÿ”ฅ Set up the Streamlit UI with an impressive demo style!
12
+ st.title("๐Ÿš€ Impressive Library Demo Extravaganza")
13
+ st.write("Watch these libraries flex their muscles with live demos producing real outputs!")
14
+
15
+ # ๐Ÿ“œ Demo Functions
16
+ def demo_pikepdf():
17
+ pdf = pikepdf.Pdf.new()
18
+ pdf.pages.append(pikepdf.Page(pikepdf.Dictionary()))
19
+ pdf.save("demo_pikepdf.pdf")
20
+ return "demo_pikepdf.pdf"
21
+
22
+ def demo_fpdf():
23
+ pdf = fpdf.FPDF()
24
+ pdf.add_page()
25
+ pdf.set_font("Arial", size=12)
26
+ pdf.cell(200, 10, txt="FPDF rocks!", ln=True)
27
+ pdf.output("demo_fpdf.pdf")
28
+ return "demo_fpdf.pdf"
29
+
30
+ def demo_pymupdf():
31
+ doc = fitz.open()
32
+ page = doc.new_page()
33
+ page.insert_text((100, 100), "Pymupdf shines!")
34
+ doc.save("demo_pymupdf.pdf")
35
+ return "demo_pymupdf.pdf"
36
+
37
+ def demo_opencv_image():
38
+ cap = cv2.VideoCapture(0)
39
+ ret, frame = cap.read()
40
+ if ret:
41
+ cv2.imwrite("demo_opencv.jpg", frame)
42
+ cap.release()
43
+ return "demo_opencv.jpg"
44
+ cap.release()
45
+ return None
46
+
47
+ def demo_imutils():
48
+ vs = VideoStream(src=0).start()
49
+ frame = vs.read()
50
+ vs.stop()
51
+ if frame is not None:
52
+ cv2.imwrite("demo_imutils.jpg", cv2.cvtColor(frame, cv2.COLOR_RGB2BGR))
53
+ return "demo_imutils.jpg"
54
+ return None
55
+
56
+ def demo_vidgear():
57
+ stream = vidgear.gears.CamGear(source=0).start()
58
+ frame = stream.read()
59
+ stream.stop()
60
+ if frame is not None:
61
+ cv2.imwrite("demo_vidgear.jpg", frame)
62
+ return "demo_vidgear.jpg"
63
+ return None
64
+
65
+ # ๐ŸŒŸ Main Demo Interface
66
+ st.sidebar.header("๐ŸŽฎ Demo Controls")
67
+ demo_type = st.sidebar.selectbox("Choose a Demo Category", ["PDF", "Image Capture", "Video Capture"])
68
+
69
+ # ๐Ÿ“œ PDF Demos
70
+ if demo_type == "PDF":
71
+ st.subheader("๐Ÿ“œ PDF Powerhouse")
72
+ demo = st.selectbox("Pick a PDF Demo", ["pikepdf", "fpdf2", "pymupdf"])
73
+ if st.button("Run PDF Demo"):
74
+ with st.spinner("Running demo..."):
75
+ try:
76
+ if demo == "pikepdf":
77
+ result = demo_pikepdf()
78
+ st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
79
+ elif demo == "fpdf2":
80
+ result = demo_fpdf()
81
+ st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
82
+ elif demo == "pymupdf":
83
+ result = demo_pymupdf()
84
+ st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
85
+ except Exception as e:
86
+ st.error(f"Demo failed: {str(e)}")
87
+
88
+ # ๐Ÿ“ธ Image Capture Demos
89
+ elif demo_type == "Image Capture":
90
+ st.subheader("๐Ÿ“ธ Image Snappers")
91
+ demo = st.selectbox("Pick an Image Demo", ["opencv-python", "imutils"])
92
+ if st.button("Run Image Demo"):
93
+ with st.spinner("Capturing image..."):
94
+ try:
95
+ if demo == "opencv-python":
96
+ result = demo_opencv_image()
97
+ if result:
98
+ st.image(result, caption="Snapped with OpenCV!")
99
+ else:
100
+ st.error("Camera not detected!")
101
+ elif demo == "imutils":
102
+ result = demo_imutils()
103
+ if result:
104
+ st.image(result, caption="Snapped with Imutils!")
105
+ else:
106
+ st.error("Camera not detected!")
107
+ except Exception as e:
108
+ st.error(f"Demo failed: {str(e)}")
109
+
110
+ # ๐ŸŽฅ Video Capture Demos
111
+ elif demo_type == "Video Capture":
112
+ st.subheader("๐ŸŽฅ Video Vanguards")
113
+ demo = st.selectbox("Pick a Video Demo", ["opencv-python", "vidgear"])
114
+ if st.button("Run Video Demo"):
115
+ with st.spinner("Capturing video frame..."):
116
+ try:
117
+ if demo == "opencv-python":
118
+ result = demo_opencv_image() # Using image capture as a proxy
119
+ if result:
120
+ st.image(result, caption="Frame from OpenCV Video!")
121
+ else:
122
+ st.error("Camera not detected!")
123
+ elif demo == "vidgear":
124
+ result = demo_vidgear()
125
+ if result:
126
+ st.image(result, caption="Frame from VidGear Video!")
127
+ else:
128
+ st.error("Camera not detected!")
129
+ except Exception as e:
130
+ st.error(f"Demo failed: {str(e)}")
131
+
132
+ # ๐Ÿ“Š Results Display
133
+ st.write("### Results")
134
+ st.write("Check out your impressive outputs above!")