ssh-AI commited on
Commit
e4a053f
·
verified ·
1 Parent(s): 6d1c9b5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -10
app.py CHANGED
@@ -10,6 +10,14 @@ from streamlit_cropper import st_cropper
10
  # --- PAGE CONFIG ---
11
  st.set_page_config(page_title="Smart Doc Scanner", page_icon="🖼️", layout="centered")
12
 
 
 
 
 
 
 
 
 
13
  # --- HEADER ---
14
  st.title("📄 Smart ID & Document Scanner")
15
  st.write("---")
@@ -21,7 +29,6 @@ if "uploaded_files_hash" not in st.session_state:
21
  uploaded_files = st.file_uploader("Upload your Images", type=["png", "jpg", "jpeg"], accept_multiple_files=True)
22
 
23
  if uploaded_files:
24
- # Create a hash based on filenames
25
  uploaded_files_names = [file.name for file in uploaded_files]
26
  current_hash = hash(tuple(uploaded_files_names))
27
 
@@ -37,6 +44,7 @@ if uploaded_files:
37
  if app_mode == "Normal Mode (No Editing)":
38
  for uploaded_file in uploaded_files:
39
  img = Image.open(uploaded_file).convert("RGB")
 
40
  processed_images.append(img)
41
  st.image(img, caption=uploaded_file.name, use_container_width=True)
42
 
@@ -45,16 +53,13 @@ if uploaded_files:
45
  st.subheader(f"Editing: {uploaded_file.name}")
46
 
47
  original_img = Image.open(uploaded_file).convert("RGB")
 
48
 
49
- # Resize image if it's too large
50
- max_size = (800, 800)
51
- if original_img.size[0] > max_size[0] or original_img.size[1] > max_size[1]:
52
- original_img.thumbnail(max_size, Image.ANTIALIAS)
53
-
54
  if f"edited_{idx}" not in st.session_state:
55
- st.session_state[f"edited_{idx}"] = original_img.copy()
56
- st.session_state[f"preview_{idx}"] = original_img.copy()
57
  st.session_state[f"cropper_{idx}"] = original_img.copy()
 
58
 
59
  # --- Layout: 2 columns ---
60
  col_cropper, col_preview = st.columns([1, 1])
@@ -76,14 +81,14 @@ if uploaded_files:
76
  st.session_state[f"cropper_{idx}"] = crop_output
77
 
78
  with col_preview:
79
- st.write("### Preview:")
80
  st.image(st.session_state[f"preview_{idx}"], caption=f"Preview: {uploaded_file.name}", use_container_width=True)
81
 
82
- # --- Buttons next to preview ---
83
  if st.button(f"Enhance Now {idx}", key=f"enhance_{idx}"):
84
  enhancer = ImageEnhance.Contrast(st.session_state[f"preview_{idx}"])
85
  sharpener = ImageEnhance.Sharpness(enhancer.enhance(1.5))
86
  st.session_state[f"preview_{idx}"] = sharpener.enhance(2.0)
 
87
 
88
  angle = st.slider(f"Rotate Angle", -180, 180, 0, key=f"rotate_slider_{idx}")
89
 
 
10
  # --- PAGE CONFIG ---
11
  st.set_page_config(page_title="Smart Doc Scanner", page_icon="🖼️", layout="centered")
12
 
13
+ # --- Resize Function ---
14
+ def resize_image(img, max_width=800):
15
+ if img.width > max_width:
16
+ ratio = max_width / img.width
17
+ new_height = int(img.height * ratio)
18
+ img = img.resize((max_width, new_height), resample=Image.Resampling.LANCZOS)
19
+ return img
20
+
21
  # --- HEADER ---
22
  st.title("📄 Smart ID & Document Scanner")
23
  st.write("---")
 
29
  uploaded_files = st.file_uploader("Upload your Images", type=["png", "jpg", "jpeg"], accept_multiple_files=True)
30
 
31
  if uploaded_files:
 
32
  uploaded_files_names = [file.name for file in uploaded_files]
33
  current_hash = hash(tuple(uploaded_files_names))
34
 
 
44
  if app_mode == "Normal Mode (No Editing)":
45
  for uploaded_file in uploaded_files:
46
  img = Image.open(uploaded_file).convert("RGB")
47
+ img = resize_image(img) # Always resize
48
  processed_images.append(img)
49
  st.image(img, caption=uploaded_file.name, use_container_width=True)
50
 
 
53
  st.subheader(f"Editing: {uploaded_file.name}")
54
 
55
  original_img = Image.open(uploaded_file).convert("RGB")
56
+ original_img = resize_image(original_img)
57
 
58
+ # Initialize session states
 
 
 
 
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])
 
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