Image-Enhancer / app.py
rehanafzal's picture
Update app.py
cf4131a verified
import streamlit as st
from PIL import Image, ImageEnhance, ImageFilter
import numpy as np
def main():
st.title("Streamlit Image Editor")
# Sidebar
st.sidebar.header("Editor Options")
# File uploader
uploaded_image = st.sidebar.file_uploader("Upload an image", type=["jpg", "jpeg", "png"])
if uploaded_image is not None:
image = Image.open(uploaded_image)
st.image(image, caption="Uploaded Image", use_column_width=True)
# Filters
st.sidebar.subheader("Apply Filters")
filter_type = st.sidebar.radio("Choose a filter:", ["None", "Grayscale", "Blur", "Edge Enhance"])
if filter_type == "Grayscale":
image = image.convert("L")
elif filter_type == "Blur":
image = image.filter(ImageFilter.BLUR)
elif filter_type == "Edge Enhance":
image = image.filter(ImageFilter.EDGE_ENHANCE)
# Brightness Adjustment
st.sidebar.subheader("Adjust Brightness")
brightness_level = st.sidebar.slider("Brightness", 0.1, 3.0, 1.0)
enhancer = ImageEnhance.Brightness(image)
image = enhancer.enhance(brightness_level)
# Contrast Adjustment
st.sidebar.subheader("Adjust Contrast")
contrast_level = st.sidebar.slider("Contrast", 0.1, 3.0, 1.0)
enhancer = ImageEnhance.Contrast(image)
image = enhancer.enhance(contrast_level)
# Display edited image
st.image(image, caption="Edited Image", use_column_width=True)
# Download button
st.sidebar.subheader("Download Edited Image")
edited_image_name = "edited_image.png"
image.save(edited_image_name)
with open(edited_image_name, "rb") as file:
st.sidebar.download_button(
label="Download",
data=file,
file_name="edited_image.png",
mime="image/png"
)
if __name__ == "__main__":
main()