KubraBashir commited on
Commit
9f979a9
·
verified ·
1 Parent(s): c0bbe90

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -0
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from PIL import Image, ImageEnhance, ImageFilter
3
+ import numpy as np
4
+
5
+ # App title
6
+ st.title("Image Editor App")
7
+
8
+ # Sidebar for options
9
+ st.sidebar.title("Editing Options")
10
+
11
+ # File uploader
12
+ uploaded_file = st.sidebar.file_uploader("Upload an image", type=["jpg", "jpeg", "png", "bmp", "tiff"])
13
+
14
+ if uploaded_file:
15
+ # Open the uploaded image
16
+ img = Image.open(uploaded_file)
17
+ st.image(img, caption="Uploaded Image", use_column_width=True)
18
+
19
+ # Image Editing Options
20
+ st.sidebar.header("Transformations")
21
+ resize_width = st.sidebar.slider("Resize Width", 50, img.width, img.width)
22
+ resize_height = st.sidebar.slider("Resize Height", 50, img.height, img.height)
23
+ rotation = st.sidebar.slider("Rotate", 0, 360, 0)
24
+ flip_horizontal = st.sidebar.checkbox("Flip Horizontally")
25
+ flip_vertical = st.sidebar.checkbox("Flip Vertically")
26
+
27
+ # Apply transformations
28
+ img_resized = img.resize((resize_width, resize_height))
29
+ img_rotated = img_resized.rotate(rotation, expand=True)
30
+ if flip_horizontal:
31
+ img_rotated = img_rotated.transpose(Image.FLIP_LEFT_RIGHT)
32
+ if flip_vertical:
33
+ img_rotated = img_rotated.transpose(Image.FLIP_TOP_BOTTOM)
34
+
35
+ # Image Enhancement
36
+ st.sidebar.header("Enhancements")
37
+ brightness = st.sidebar.slider("Brightness", 0.1, 3.0, 1.0)
38
+ contrast = st.sidebar.slider("Contrast", 0.1, 3.0, 1.0)
39
+ sharpness = st.sidebar.slider("Sharpness", 0.1, 3.0, 1.0)
40
+
41
+ enhancer_brightness = ImageEnhance.Brightness(img_rotated).enhance(brightness)
42
+ enhancer_contrast = ImageEnhance.Contrast(enhancer_brightness).enhance(contrast)
43
+ enhancer_sharpness = ImageEnhance.Sharpness(enhancer_contrast).enhance(sharpness)
44
+
45
+ # Filters
46
+ st.sidebar.header("Filters")
47
+ filters = st.sidebar.selectbox("Select Filter", ["None", "BLUR", "CONTOUR", "DETAIL", "EDGE_ENHANCE", "SHARPEN"])
48
+ if filters == "BLUR":
49
+ img_filtered = enhancer_sharpness.filter(ImageFilter.BLUR)
50
+ elif filters == "CONTOUR":
51
+ img_filtered = enhancer_sharpness.filter(ImageFilter.CONTOUR)
52
+ elif filters == "DETAIL":
53
+ img_filtered = enhancer_sharpness.filter(ImageFilter.DETAIL)
54
+ elif filters == "EDGE_ENHANCE":
55
+ img_filtered = enhancer_sharpness.filter(ImageFilter.EDGE_ENHANCE)
56
+ elif filters == "SHARPEN":
57
+ img_filtered = enhancer_sharpness.filter(ImageFilter.SHARPEN)
58
+ else:
59
+ img_filtered = enhancer_sharpness
60
+
61
+ # Display final image
62
+ st.image(img_filtered, caption="Edited Image", use_column_width=True)
63
+
64
+ # Download option
65
+ st.sidebar.header("Download")
66
+ img_filtered = img_filtered.convert("RGB")
67
+ img_bytes = img_filtered.tobytes()
68
+ st.sidebar.download_button("Download Edited Image", data=img_bytes, file_name="edited_image.jpg", mime="image/jpeg")
69
+ else:
70
+ st.info("Upload an image to start editing.")
71
+