ssh-AI commited on
Commit
8c6a97b
·
verified ·
1 Parent(s): e4a053f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -20
app.py CHANGED
@@ -59,13 +59,13 @@ if uploaded_files:
59
  if f"edited_{idx}" not in st.session_state:
60
  st.session_state[f"edited_{idx}"] = original_img
61
  st.session_state[f"cropper_{idx}"] = original_img.copy()
62
- st.session_state[f"preview_{idx}"] = original_img.copy()
63
 
64
  # --- Layout: 2 columns ---
65
  col_cropper, col_preview = st.columns([1, 1])
66
 
67
  with col_cropper:
68
- st.write("### Select Crop Area:")
69
  crop_output = st_cropper(
70
  st.session_state[f"cropper_{idx}"],
71
  realtime_update=False,
@@ -78,32 +78,32 @@ if uploaded_files:
78
 
79
  if st.button(f"Crop Now {idx}", key=f"crop_{idx}"):
80
  st.session_state[f"preview_{idx}"] = crop_output
81
- st.session_state[f"cropper_{idx}"] = crop_output
82
 
83
  with col_preview:
84
  st.write("### Preview and Edit:")
85
- st.image(st.session_state[f"preview_{idx}"], caption=f"Preview: {uploaded_file.name}", use_container_width=True)
 
86
 
87
- if st.button(f"Enhance Now {idx}", key=f"enhance_{idx}"):
88
- enhancer = ImageEnhance.Contrast(st.session_state[f"preview_{idx}"])
89
- sharpener = ImageEnhance.Sharpness(enhancer.enhance(1.5))
90
- st.session_state[f"preview_{idx}"] = sharpener.enhance(2.0)
91
- st.session_state[f"cropper_{idx}"] = st.session_state[f"preview_{idx}"]
92
 
93
- angle = st.slider(f"Rotate Angle", -180, 180, 0, key=f"rotate_slider_{idx}")
94
 
95
- if st.button(f"Rotate Now {idx}", key=f"rotate_{idx}"):
96
- rotated_img = st.session_state[f"preview_{idx}"].rotate(angle, expand=True)
97
- st.session_state[f"preview_{idx}"] = rotated_img
98
- st.session_state[f"cropper_{idx}"] = rotated_img
99
 
100
- if st.button(f"Reset Preview {idx}", key=f"reset_preview_{idx}"):
101
- st.session_state[f"preview_{idx}"] = original_img.copy()
102
- st.session_state[f"cropper_{idx}"] = original_img.copy()
103
 
104
- if st.button(f"Apply Changes {idx}", key=f"apply_{idx}"):
105
- st.session_state[f"edited_{idx}"] = st.session_state[f"preview_{idx}"].copy()
106
- st.success("✅ Changes Applied!")
 
 
107
 
108
  processed_images.append(st.session_state.get(f"edited_{idx}", original_img))
109
 
 
59
  if f"edited_{idx}" not in st.session_state:
60
  st.session_state[f"edited_{idx}"] = original_img
61
  st.session_state[f"cropper_{idx}"] = original_img.copy()
62
+ st.session_state[f"preview_{idx}"] = None # Will be set after crop
63
 
64
  # --- Layout: 2 columns ---
65
  col_cropper, col_preview = st.columns([1, 1])
66
 
67
  with col_cropper:
68
+ st.write("### Select Crop Area (Original Image):")
69
  crop_output = st_cropper(
70
  st.session_state[f"cropper_{idx}"],
71
  realtime_update=False,
 
78
 
79
  if st.button(f"Crop Now {idx}", key=f"crop_{idx}"):
80
  st.session_state[f"preview_{idx}"] = crop_output
81
+ st.success("✅ Cropped! Now Edit Preview.")
82
 
83
  with col_preview:
84
  st.write("### Preview and Edit:")
85
+ if st.session_state[f"preview_{idx}"] is not None:
86
+ st.image(st.session_state[f"preview_{idx}"], caption=f"Preview: {uploaded_file.name}", use_container_width=True)
87
 
88
+ if st.button(f"Enhance Now {idx}", key=f"enhance_{idx}"):
89
+ enhancer = ImageEnhance.Contrast(st.session_state[f"preview_{idx}"])
90
+ sharpener = ImageEnhance.Sharpness(enhancer.enhance(1.5))
91
+ st.session_state[f"preview_{idx}"] = sharpener.enhance(2.0)
 
92
 
93
+ angle = st.slider(f"Rotate Angle", -180, 180, 0, key=f"rotate_slider_{idx}")
94
 
95
+ if st.button(f"Rotate Now {idx}", key=f"rotate_{idx}"):
96
+ rotated_img = st.session_state[f"preview_{idx}"].rotate(angle, expand=True)
97
+ st.session_state[f"preview_{idx}"] = rotated_img
 
98
 
99
+ if st.button(f"Reset Preview {idx}", key=f"reset_preview_{idx}"):
100
+ st.session_state[f"preview_{idx}"] = crop_output.copy()
 
101
 
102
+ if st.button(f"Apply Changes {idx}", key=f"apply_{idx}"):
103
+ st.session_state[f"edited_{idx}"] = st.session_state[f"preview_{idx}"].copy()
104
+ st.success("✅ Changes Applied!")
105
+ else:
106
+ st.info("Please crop an area first to enable editing.")
107
 
108
  processed_images.append(st.session_state.get(f"edited_{idx}", original_img))
109