Spaces:
Build error
Build error
| import streamlit as st | |
| import cv2 | |
| from PIL import Image, ImageEnhance | |
| import numpy as np # Add this line | |
| # Function to apply grayscale filter | |
| def grayscale(image): | |
| gray_img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) | |
| return gray_img | |
| # Function to adjust brightness | |
| def adjust_brightness(image, factor): | |
| pil_img = Image.fromarray(image) | |
| enhancer = ImageEnhance.Brightness(pil_img) | |
| enhanced_img = enhancer.enhance(factor) | |
| return cv2.cvtColor(np.array(enhanced_img), cv2.COLOR_RGB2BGR) | |
| # Load image from uploaded file | |
| def load_image(uploaded_file): | |
| img = cv2.imdecode(np.fromstring(uploaded_file.read(), np.uint8), cv2.IMREAD_COLOR) | |
| return img | |
| st.title("Image Editor") | |
| st.subheader("Enhance your images with simple filters!") | |
| # Upload image | |
| uploaded_file = st.file_uploader("Choose an image:", type=["jpg", "jpeg", "png"]) | |
| if uploaded_file is not None: | |
| image = load_image(uploaded_file) | |
| st.image(image, channels="BGR") # Display original image | |
| # Filter selection | |
| filter_options = {"Original": image, "Grayscale": grayscale(image.copy())} | |
| selected_filter = st.selectbox("Select a filter:", list(filter_options.keys())) | |
| filtered_image = filter_options[selected_filter] | |
| # Brightness adjustment slider (optional) | |
| brightness_factor = st.slider("Adjust Brightness", 0.5, 2.0, step=0.1, value=1.0) | |
| adjusted_image = adjust_brightness(filtered_image.copy(), brightness_factor) | |
| # Display edited image | |
| st.image(adjusted_image, channels="BGR") | |
| # Download button | |
| if st.button("Download Edited Image"): | |
| with open("edited_image.jpg", "wb") as f: | |
| cv2.imwrite("edited_image.jpg", adjusted_image) | |
| f.write(open("edited_image.jpg", "rb").read()) | |
| st.success("Image downloaded successfully!") | |
| st.sidebar.markdown( | |
| """ | |
| **About this App:** | |
| This is a simple image editor built with Streamlit and deployed on Hugging Face. It allows you to upload images, apply grayscale filter (and optionally adjust brightness), and download the edited version. | |
| **Feel free to explore and enhance your images!** | |
| """ | |
| ) | |