awacke1 commited on
Commit
19de063
Β·
verified Β·
1 Parent(s): c8ba898

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -19
app.py CHANGED
@@ -6,6 +6,7 @@ import threading
6
  import time
7
  from PIL import Image
8
  from io import BytesIO
 
9
 
10
  # 🌟πŸ”₯ Initialize session state like a galactic DJ spinning tracks!
11
  if 'file_history' not in st.session_state:
@@ -20,8 +21,10 @@ if 'selected_cam_img' not in st.session_state:
20
  st.session_state['selected_cam_img'] = None
21
 
22
  # πŸ“œπŸ’Ύ Save to history like a time-traveling scribe! | πŸ“…βœ¨ save_to_history("πŸ–ΌοΈ Image", "pic.jpg") - Stamps a pic in the history books like a boss!
23
- def save_to_history(file_type, file_path):
24
  timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
 
 
25
  st.session_state['file_history'].append({
26
  "Timestamp": timestamp,
27
  "Type": file_type,
@@ -33,9 +36,7 @@ def auto_capture():
33
  if st.session_state['auto_capture_running'] and st.session_state['selected_cam_img']:
34
  cam_img = st.session_state['selected_cam_img']
35
  filename = f"auto_snap_{datetime.now().strftime('%Y%m%d_%H%M%S')}.jpg"
36
- with open(filename, "wb") as f:
37
- f.write(cam_img.getvalue())
38
- save_to_history("πŸ–ΌοΈ Image", filename)
39
  threading.Timer(10, auto_capture).start()
40
 
41
  # πŸŽ›οΈ Sidebar config like a spaceship control panel!
@@ -71,24 +72,20 @@ with cols[0]:
71
  filename = f"cam0_snap_{datetime.now().strftime('%Y%m%d_%H%M%S')}.jpg"
72
  if st.session_state['cam0_file'] and os.path.exists(st.session_state['cam0_file']):
73
  os.remove(st.session_state['cam0_file'])
74
- with open(filename, "wb") as f:
75
- f.write(cam0_img.getvalue())
76
  st.session_state['cam0_file'] = filename
77
  st.session_state['selected_cam_img'] = cam0_img
78
- save_to_history("πŸ–ΌοΈ Image", filename)
79
- st.image(Image.open(filename), caption="Camera 0 Snap", use_column_width=True)
80
  with cols[1]:
81
  cam1_img = st.camera_input("πŸ“· Camera 1", key="cam1")
82
  if cam1_img and camera_choice == "Camera 1":
83
  filename = f"cam1_snap_{datetime.now().strftime('%Y%m%d_%H%M%S')}.jpg"
84
  if st.session_state['cam1_file'] and os.path.exists(st.session_state['cam1_file']):
85
  os.remove(st.session_state['cam1_file'])
86
- with open(filename, "wb") as f:
87
- f.write(cam1_img.getvalue())
88
  st.session_state['cam1_file'] = filename
89
  st.session_state['selected_cam_img'] = cam1_img
90
- save_to_history("πŸ–ΌοΈ Image", filename)
91
- st.image(Image.open(filename), caption="Camera 1 Snap", use_column_width=True)
92
 
93
  # πŸ“‚ Upload zone like a media drop party!
94
  st.header("πŸ“₯πŸŽ‰ Drop Zone")
@@ -96,9 +93,7 @@ uploaded_files = st.file_uploader("πŸ“Έ Toss Pics", accept_multiple_files=True,
96
  if uploaded_files:
97
  for uploaded_file in uploaded_files:
98
  file_path = f"uploaded_{uploaded_file.name}"
99
- with open(file_path, "wb") as f:
100
- f.write(uploaded_file.read())
101
- save_to_history("πŸ–ΌοΈ Image", file_path)
102
 
103
  # πŸ–ΌοΈ Gallery like a media circus!
104
  st.header("πŸŽͺ Snap Show")
@@ -109,10 +104,13 @@ if st.session_state['file_history']:
109
  cols = st.columns(3)
110
  for i, img in enumerate(images):
111
  with cols[i % 3]:
112
- st.image(img['Path'], caption=img['Path'], use_column_width=True)
113
- with open(img['Path'], "rb") as f:
114
- img_data = f.read()
115
- st.markdown(f'<a href="data:image/jpeg;base64,{base64.b64encode(img_data).decode()}" download="{os.path.basename(img["Path"])}">πŸ“₯ Snag It!</a>', unsafe_allow_html=True)
 
 
 
116
  else:
117
  st.write("🚫 No snaps yet!")
118
 
 
6
  import time
7
  from PIL import Image
8
  from io import BytesIO
9
+ import base64
10
 
11
  # 🌟πŸ”₯ Initialize session state like a galactic DJ spinning tracks!
12
  if 'file_history' not in st.session_state:
 
21
  st.session_state['selected_cam_img'] = None
22
 
23
  # πŸ“œπŸ’Ύ Save to history like a time-traveling scribe! | πŸ“…βœ¨ save_to_history("πŸ–ΌοΈ Image", "pic.jpg") - Stamps a pic in the history books like a boss!
24
+ def save_to_history(file_type, file_path, img_data):
25
  timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
26
+ with open(file_path, "wb") as f:
27
+ f.write(img_data)
28
  st.session_state['file_history'].append({
29
  "Timestamp": timestamp,
30
  "Type": file_type,
 
36
  if st.session_state['auto_capture_running'] and st.session_state['selected_cam_img']:
37
  cam_img = st.session_state['selected_cam_img']
38
  filename = f"auto_snap_{datetime.now().strftime('%Y%m%d_%H%M%S')}.jpg"
39
+ save_to_history("πŸ–ΌοΈ Image", filename, cam_img.getvalue())
 
 
40
  threading.Timer(10, auto_capture).start()
41
 
42
  # πŸŽ›οΈ Sidebar config like a spaceship control panel!
 
72
  filename = f"cam0_snap_{datetime.now().strftime('%Y%m%d_%H%M%S')}.jpg"
73
  if st.session_state['cam0_file'] and os.path.exists(st.session_state['cam0_file']):
74
  os.remove(st.session_state['cam0_file'])
75
+ save_to_history("πŸ–ΌοΈ Image", filename, cam0_img.getvalue())
 
76
  st.session_state['cam0_file'] = filename
77
  st.session_state['selected_cam_img'] = cam0_img
78
+ st.image(Image.open(BytesIO(cam0_img.getvalue())), caption="Camera 0 Snap", use_container_width=True)
 
79
  with cols[1]:
80
  cam1_img = st.camera_input("πŸ“· Camera 1", key="cam1")
81
  if cam1_img and camera_choice == "Camera 1":
82
  filename = f"cam1_snap_{datetime.now().strftime('%Y%m%d_%H%M%S')}.jpg"
83
  if st.session_state['cam1_file'] and os.path.exists(st.session_state['cam1_file']):
84
  os.remove(st.session_state['cam1_file'])
85
+ save_to_history("πŸ–ΌοΈ Image", filename, cam1_img.getvalue())
 
86
  st.session_state['cam1_file'] = filename
87
  st.session_state['selected_cam_img'] = cam1_img
88
+ st.image(Image.open(BytesIO(cam1_img.getvalue())), caption="Camera 1 Snap", use_container_width=True)
 
89
 
90
  # πŸ“‚ Upload zone like a media drop party!
91
  st.header("πŸ“₯πŸŽ‰ Drop Zone")
 
93
  if uploaded_files:
94
  for uploaded_file in uploaded_files:
95
  file_path = f"uploaded_{uploaded_file.name}"
96
+ save_to_history("πŸ–ΌοΈ Image", file_path, uploaded_file.getvalue())
 
 
97
 
98
  # πŸ–ΌοΈ Gallery like a media circus!
99
  st.header("πŸŽͺ Snap Show")
 
104
  cols = st.columns(3)
105
  for i, img in enumerate(images):
106
  with cols[i % 3]:
107
+ if os.path.exists(img['Path']):
108
+ st.image(img['Path'], caption=img['Path'], use_container_width=True)
109
+ with open(img['Path'], "rb") as f:
110
+ img_data = f.read()
111
+ st.markdown(f'<a href="data:image/jpeg;base64,{base64.b64encode(img_data).decode()}" download="{os.path.basename(img["Path"])}">πŸ“₯ Snag It!</a>', unsafe_allow_html=True)
112
+ else:
113
+ st.warning(f"🚨 Missing file: {img['Path']}")
114
  else:
115
  st.write("🚫 No snaps yet!")
116