Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from PIL import Image, ImageFilter, ImageEnhance | |
| import numpy as np | |
| import io | |
| def apply_filter(image, filter_type): | |
| if filter_type == "Grayscale": | |
| return image.convert("L") | |
| elif filter_type == "Blur": | |
| return image.filter(ImageFilter.BLUR) | |
| elif filter_type == "Contour": | |
| return image.filter(ImageFilter.CONTOUR) | |
| elif filter_type == "Edge Enhance": | |
| return image.filter(ImageFilter.EDGE_ENHANCE) | |
| elif filter_type == "Sharpen": | |
| return image.filter(ImageFilter.SHARPEN) | |
| else: | |
| return image | |
| def main(): | |
| st.title("Image Editor") | |
| st.sidebar.title("Editor Options") | |
| filter_option = st.sidebar.selectbox("Choose a filter:", [ | |
| "None", "Grayscale", "Blur", "Contour", "Edge Enhance", "Sharpen" | |
| ]) | |
| brightness = st.sidebar.slider("Adjust Brightness", 0.5, 3.0, 1.0) | |
| contrast = st.sidebar.slider("Adjust Contrast", 0.5, 3.0, 1.0) | |
| uploaded_file = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"]) | |
| if uploaded_file is not None: | |
| image = Image.open(uploaded_file) | |
| st.image(image, caption="Uploaded Image", use_column_width=True) | |
| # Apply filter | |
| edited_image = apply_filter(image, filter_option) | |
| # Adjust brightness and contrast | |
| enhancer = ImageEnhance.Brightness(edited_image) | |
| edited_image = enhancer.enhance(brightness) | |
| enhancer = ImageEnhance.Contrast(edited_image) | |
| edited_image = enhancer.enhance(contrast) | |
| st.image(edited_image, caption="Edited Image", use_column_width=True) | |
| # Download edited image | |
| buf = io.BytesIO() | |
| edited_image.save(buf, format="PNG") | |
| byte_im = buf.getvalue() | |
| st.download_button( | |
| label="Download Edited Image", | |
| data=byte_im, | |
| file_name="edited_image.png", | |
| mime="image/png", | |
| ) | |
| if __name__ == "__main__": | |
| main() | |