import streamlit as st from PIL import Image from streamlit_image_coordinates import streamlit_image_coordinates with Image.open("kitty.jpeg") as img: draw = ImageDraw.Draw(img) # Draw an ellipse at each coordinate in points for point in st.session_state["points"]: coords = get_ellipse_coords(point) draw.ellipse(coords, fill="red") value = streamlit_image_coordinates(img, key="pil") if value is not None: point = value["x"], value["y"] if point not in st.session_state["points"]: st.session_state["points"].append(point) st.experimental_rerun()