KubraBashir commited on
Commit
a83d33c
·
verified ·
1 Parent(s): 80a15bf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -12
app.py CHANGED
@@ -1,5 +1,5 @@
1
  import streamlit as st
2
- from PIL import Image, ImageEnhance, ImageFilter, ImageOps, ImageDraw, ImageFont
3
  import numpy as np
4
  import io
5
 
@@ -12,7 +12,7 @@ uploaded_file = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"])
12
  if uploaded_file:
13
  # Load image
14
  img = Image.open(uploaded_file).convert("RGBA")
15
- st.image(img, caption="Original Image", use_column_width=True)
16
 
17
  # Sidebar Options
18
  st.sidebar.title("Editing Options")
@@ -38,29 +38,33 @@ if uploaded_file:
38
  st.sidebar.header("Background Color")
39
  bg_color = st.sidebar.color_picker("Pick a Background Color", "#FFFFFF")
40
  bg_layer = Image.new("RGBA", img_rotated.size, bg_color)
41
- img_rotated = Image.alpha_composite(bg_layer, img_rotated)
 
 
 
 
42
 
43
  # Filters
44
  st.sidebar.header("Filters")
45
  filters = st.sidebar.selectbox("Choose a filter", ["None", "Grayscale", "Sepia", "Negative", "Blur", "Contour", "Detail", "Emboss"])
46
  if filters == "Grayscale":
47
- img_filtered = img_rotated.convert("L").convert("RGBA")
48
  elif filters == "Sepia":
49
- sepia_filter = np.array(img_rotated)[:, :, :3]
50
  sepia = np.dot(sepia_filter, [0.393, 0.769, 0.189]).clip(0, 255).astype("uint8")
51
  img_filtered = Image.fromarray(sepia).convert("RGBA")
52
  elif filters == "Negative":
53
- img_filtered = ImageOps.invert(img_rotated.convert("RGB")).convert("RGBA")
54
  elif filters == "Blur":
55
- img_filtered = img_rotated.filter(ImageFilter.BLUR)
56
  elif filters == "Contour":
57
- img_filtered = img_rotated.filter(ImageFilter.CONTOUR)
58
  elif filters == "Detail":
59
- img_filtered = img_rotated.filter(ImageFilter.DETAIL)
60
  elif filters == "Emboss":
61
- img_filtered = img_rotated.filter(ImageFilter.EMBOSS)
62
  else:
63
- img_filtered = img_rotated
64
 
65
  # Adjustments
66
  st.sidebar.header("Adjustments")
@@ -83,7 +87,7 @@ if uploaded_file:
83
  img_resized_rgb = img_resized.convert("RGB")
84
 
85
  # Display Final Image
86
- st.image(img_resized, caption="Edited Image", use_column_width=True)
87
 
88
  # Download Button
89
  st.sidebar.header("Download")
 
1
  import streamlit as st
2
+ from PIL import Image, ImageEnhance, ImageFilter, ImageOps, ImageDraw
3
  import numpy as np
4
  import io
5
 
 
12
  if uploaded_file:
13
  # Load image
14
  img = Image.open(uploaded_file).convert("RGBA")
15
+ st.image(img, caption="Original Image", use_container_width=True)
16
 
17
  # Sidebar Options
18
  st.sidebar.title("Editing Options")
 
38
  st.sidebar.header("Background Color")
39
  bg_color = st.sidebar.color_picker("Pick a Background Color", "#FFFFFF")
40
  bg_layer = Image.new("RGBA", img_rotated.size, bg_color)
41
+ img_with_bg = Image.alpha_composite(bg_layer, img_rotated)
42
+
43
+ # Ensure RGBA transparency
44
+ if img_with_bg.mode != "RGBA":
45
+ img_with_bg = img_with_bg.convert("RGBA")
46
 
47
  # Filters
48
  st.sidebar.header("Filters")
49
  filters = st.sidebar.selectbox("Choose a filter", ["None", "Grayscale", "Sepia", "Negative", "Blur", "Contour", "Detail", "Emboss"])
50
  if filters == "Grayscale":
51
+ img_filtered = img_with_bg.convert("L").convert("RGBA")
52
  elif filters == "Sepia":
53
+ sepia_filter = np.array(img_with_bg)[:, :, :3]
54
  sepia = np.dot(sepia_filter, [0.393, 0.769, 0.189]).clip(0, 255).astype("uint8")
55
  img_filtered = Image.fromarray(sepia).convert("RGBA")
56
  elif filters == "Negative":
57
+ img_filtered = ImageOps.invert(img_with_bg.convert("RGB")).convert("RGBA")
58
  elif filters == "Blur":
59
+ img_filtered = img_with_bg.filter(ImageFilter.BLUR)
60
  elif filters == "Contour":
61
+ img_filtered = img_with_bg.filter(ImageFilter.CONTOUR)
62
  elif filters == "Detail":
63
+ img_filtered = img_with_bg.filter(ImageFilter.DETAIL)
64
  elif filters == "Emboss":
65
+ img_filtered = img_with_bg.filter(ImageFilter.EMBOSS)
66
  else:
67
+ img_filtered = img_with_bg
68
 
69
  # Adjustments
70
  st.sidebar.header("Adjustments")
 
87
  img_resized_rgb = img_resized.convert("RGB")
88
 
89
  # Display Final Image
90
+ st.image(img_resized, caption="Edited Image", use_container_width=True)
91
 
92
  # Download Button
93
  st.sidebar.header("Download")