-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclipboard_utils.py
32 lines (26 loc) · 1.02 KB
/
clipboard_utils.py
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
import win32clipboard
import io
from PIL import Image
import streamlit as st
def read_clipboard_images():
"""Read images from clipboard and return them as a list"""
images = []
try:
win32clipboard.OpenClipboard()
if win32clipboard.IsClipboardFormatAvailable(win32clipboard.CF_DIB):
data = win32clipboard.GetClipboardData(win32clipboard.CF_DIB)
image = Image.open(io.BytesIO(data))
images.append(image)
elif win32clipboard.IsClipboardFormatAvailable(win32clipboard.CF_HDROP):
filepaths = win32clipboard.GetClipboardData(win32clipboard.CF_HDROP)
for filepath in filepaths:
try:
img = Image.open(filepath)
images.append(img)
except Exception as e:
st.error(f"Error loading image {filepath}: {e}")
except Exception as e:
st.error(f"Error reading clipboard: {e}")
finally:
win32clipboard.CloseClipboard()
return images