Ghmustafa11 commited on
Commit
2f85004
·
verified ·
1 Parent(s): f615de2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -7
app.py CHANGED
@@ -1,15 +1,63 @@
1
  import streamlit as st
2
- from PIL import Image, ImageOps
3
 
4
  # Function to apply effects
5
  def apply_effect(image, effect):
6
  if effect == "kiss":
7
- image = image.convert("L") # Convert to grayscale
8
  elif effect == "sepia":
9
  sepia_img = ImageOps.colorize(image.convert("L"), black="black", white="orange")
10
  image = sepia_img
11
  elif effect == "invert":
12
  image = ImageOps.invert(image.convert("RGB"))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  return image
14
 
15
  # Streamlit app
@@ -19,17 +67,27 @@ st.title("Image Effect Converter")
19
  uploaded_files = st.file_uploader("Upload images", type=["jpg", "png", "jpeg"], accept_multiple_files=True)
20
 
21
  if uploaded_files:
22
- # Process each uploaded image
23
- for uploaded_file in uploaded_files:
24
  # Display each uploaded image
25
  image = Image.open(uploaded_file)
26
  st.image(image, caption=f"Uploaded Image: {uploaded_file.name}", use_column_width=True)
27
 
28
- # Select an effect for each image
29
- effect = st.selectbox(f"Choose an effect for {uploaded_file.name}", ["kiss", "sepia", "invert"], key=uploaded_file.name)
 
 
 
 
 
 
 
 
 
 
 
30
 
31
  # Apply effect
32
- if st.button(f"Apply Effect to {uploaded_file.name}"):
33
  processed_image = apply_effect(image, effect)
34
  st.image(processed_image, caption=f"Processed Image: {uploaded_file.name}", use_column_width=True)
35
 
 
1
  import streamlit as st
2
+ from PIL import Image, ImageOps, ImageEnhance
3
 
4
  # Function to apply effects
5
  def apply_effect(image, effect):
6
  if effect == "kiss":
7
+ image = image.convert("L") # Grayscale
8
  elif effect == "sepia":
9
  sepia_img = ImageOps.colorize(image.convert("L"), black="black", white="orange")
10
  image = sepia_img
11
  elif effect == "invert":
12
  image = ImageOps.invert(image.convert("RGB"))
13
+ elif effect == "contrast":
14
+ enhancer = ImageEnhance.Contrast(image)
15
+ image = enhancer.enhance(2.0) # Increase contrast
16
+ elif effect == "brightness":
17
+ enhancer = ImageEnhance.Brightness(image)
18
+ image = enhancer.enhance(1.5) # Increase brightness
19
+ elif effect == "sharpness":
20
+ enhancer = ImageEnhance.Sharpness(image)
21
+ image = enhancer.enhance(2.0) # Increase sharpness
22
+ elif effect == "blur":
23
+ image = image.filter(ImageFilter.BLUR)
24
+ elif effect == "contour":
25
+ image = image.filter(ImageFilter.CONTOUR)
26
+ elif effect == "edge_enhance":
27
+ image = image.filter(ImageFilter.EDGE_ENHANCE)
28
+ elif effect == "emboss":
29
+ image = image.filter(ImageFilter.EMBOSS)
30
+ elif effect == "find_edges":
31
+ image = image.filter(ImageFilter.FIND_EDGES)
32
+ elif effect == "solarize":
33
+ image = ImageOps.solarize(image, threshold=128)
34
+ elif effect == "posterize":
35
+ image = ImageOps.posterize(image, bits=2)
36
+ elif effect == "grayscale":
37
+ image = image.convert("L")
38
+ elif effect == "autocontrast":
39
+ image = ImageOps.autocontrast(image)
40
+ elif effect == "equalize":
41
+ image = ImageOps.equalize(image)
42
+ elif effect == "flip":
43
+ image = ImageOps.mirror(image)
44
+ elif effect == "rotate_90":
45
+ image = image.rotate(90, expand=True)
46
+ elif effect == "rotate_180":
47
+ image = image.rotate(180, expand=True)
48
+ elif effect == "rotate_270":
49
+ image = image.rotate(270, expand=True)
50
+ elif effect == "crop_center":
51
+ width, height = image.size
52
+ left = width * 0.25
53
+ top = height * 0.25
54
+ right = width * 0.75
55
+ bottom = height * 0.75
56
+ image = image.crop((left, top, right, bottom))
57
+ elif effect == "resize_50%":
58
+ image = image.resize((image.size[0] // 2, image.size[1] // 2))
59
+ elif effect == "resize_200%":
60
+ image = image.resize((image.size[0] * 2, image.size[1] * 2))
61
  return image
62
 
63
  # Streamlit app
 
67
  uploaded_files = st.file_uploader("Upload images", type=["jpg", "png", "jpeg"], accept_multiple_files=True)
68
 
69
  if uploaded_files:
70
+ for idx, uploaded_file in enumerate(uploaded_files):
 
71
  # Display each uploaded image
72
  image = Image.open(uploaded_file)
73
  st.image(image, caption=f"Uploaded Image: {uploaded_file.name}", use_column_width=True)
74
 
75
+ # 20+ effects in the selectbox
76
+ effects = [
77
+ "kiss", "sepia", "invert", "contrast", "brightness", "sharpness", "blur",
78
+ "contour", "edge_enhance", "emboss", "find_edges", "solarize", "posterize",
79
+ "grayscale", "autocontrast", "equalize", "flip", "rotate_90", "rotate_180",
80
+ "rotate_270", "crop_center", "resize_50%", "resize_200%"
81
+ ]
82
+
83
+ effect = st.selectbox(
84
+ f"Choose an effect for {uploaded_file.name}",
85
+ effects,
86
+ key=f"effect_{idx}"
87
+ )
88
 
89
  # Apply effect
90
+ if st.button(f"Apply Effect to {uploaded_file.name}", key=f"button_{idx}"):
91
  processed_image = apply_effect(image, effect)
92
  st.image(processed_image, caption=f"Processed Image: {uploaded_file.name}", use_column_width=True)
93