awacke1's picture
Update app.py
c9a7bd9
raw
history blame
1.02 kB
import streamlit as st
import svgwrite
def apply_circle_mask(image_path):
# Load image
image = svgwrite.Drawing('output.svg')
image.add(image.image(href=image_path, size=("100%", "100%")))
# Add circular mask
width, height = image.viewbox[2:]
half_x, half_y = width/2, height/2
line_color = "white"
mask = image.defs.add(image.mask(id="bg_wrapper"))
mask.add(image.circle(center=(half_x, half_y), r=335, fill=line_color, opacity=".4"))
image.add(image.image(href=image_path, size=("100%", "100%"), mask="url(#bg_wrapper)"))
return image.tostring()
# Streamlit app
st.title("Circular Image Mask")
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
if uploaded_file is not None:
# Save uploaded image to file
with open("image.jpg", "wb") as f:
f.write(uploaded_file.getbuffer())
# Apply circular mask and display result
output_svg = apply_circle_mask("image.jpg")
st.image(output_svg, output_format="SVG")