F24EE's picture
Update app.py
deeaa92 verified
import streamlit as st
from rembg import remove
from PIL import Image
import io
# Function to remove background from image
def remove_background(image_bytes):
input_image = Image.open(io.BytesIO(image_bytes))
# Rembg expects the image to be in the correct mode, typically RGBA or RGB
input_image = input_image.convert("RGBA")
output_image = remove(input_image)
return output_image
# Streamlit UI setup
st.set_page_config(page_title="Background Remover", layout="wide")
# Title and Description
st.title("Background Removal Tool")
st.markdown("### Upload an image, and we will remove its background for you!")
# Create columns for layout
col1, col2 = st.columns(2)
# Column 1: Image upload
with col1:
uploaded_file = st.file_uploader("Choose an image file", type=["png", "jpg", "jpeg"])
# Column 2: Instructions
with col2:
st.markdown("""
#### Instructions:
- Upload an image (PNG, JPG, or JPEG) using the button above.
- The background will be removed automatically.
- Download the result below once it's ready.
""")
# When an image is uploaded
if uploaded_file is not None:
# Show the uploaded image
st.image(uploaded_file, caption="Uploaded Image", use_column_width=True)
# Remove the background
with st.spinner("Removing background..."):
output_image = remove_background(uploaded_file.read())
# Show the processed image
st.image(output_image, caption="Image with Background Removed", use_column_width=True)
# Allow the user to download the result
output_image_pil = Image.open(io.BytesIO(output_image))
buf = io.BytesIO()
output_image_pil.save(buf, format="PNG")
byte_im = buf.getvalue()
st.download_button(
label="Download Image with Removed Background",
data=byte_im,
file_name="image_no_bg.png",
mime="image/png"
)
# Footer
st.markdown("---")
st.markdown("Created by [Your Name].")