Spaces:
Sleeping
Sleeping
| # src\ui\drawable_canvas.py | |
| import streamlit as st | |
| from streamlit_drawable_canvas import st_canvas | |
| from PIL import Image | |
| def drawable_canvas(uploaded_image, input_size): | |
| """Creates a Streamlit drawable canvas with the resized image as the background.""" | |
| # Generate a unique key for the canvas based on the input size | |
| canvas_key = f"canvas_{input_size}" | |
| st.write("Draw a line to set the scale:") | |
| original_image = Image.open(uploaded_image) | |
| image_width, image_height = original_image.size | |
| scale = input_size / max(image_width, image_height) | |
| new_w = int(image_width * scale) | |
| new_h = int(image_height * scale) | |
| resized_image = original_image.resize((new_w, new_h)) | |
| canvas_result = st_canvas( | |
| fill_color="rgba(255, 165, 0, 0.3)", | |
| stroke_width=10, | |
| stroke_color="#e00", | |
| background_image=resized_image, | |
| height=new_h, | |
| width=new_w, | |
| drawing_mode="line", | |
| key=canvas_key, | |
| ) | |
| return canvas_result | |