KZTech commited on
Commit
4d859b1
·
verified ·
1 Parent(s): 55c4146

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -13
app.py CHANGED
@@ -1,26 +1,38 @@
1
  import streamlit as st
2
  from PIL import Image
3
  import pytesseract
 
4
 
5
- st.set_page_config(page_title="OCR - Image to Text", layout="centered")
6
- st.title("🖼️ OCR - Image to Text")
7
 
8
- st.write("Upload an image to extract text:")
9
 
10
- # Upload block
11
  uploaded_file = st.file_uploader("Upload Image", type=["png", "jpg", "jpeg"])
 
12
 
13
- # Show uploaded image and extraction options
14
  if uploaded_file is not None:
 
 
 
 
 
15
  try:
16
- image = Image.open(uploaded_file)
17
- st.image(image, caption="Uploaded Image", use_column_width=True)
 
 
 
 
18
 
19
- if st.button("Extract Text"):
20
- with st.spinner("Extracting text..."):
 
 
 
21
  text = pytesseract.image_to_string(image)
22
- st.success("✅ Text extracted!")
23
- st.text_area("Extracted Text", value=text, height=300)
 
 
24
 
25
- except Exception as e:
26
- st.error(f"❌ Error: {e}")
 
1
  import streamlit as st
2
  from PIL import Image
3
  import pytesseract
4
+ import io
5
 
6
+ st.set_page_config(page_title="OCR Image to Text", layout="centered")
7
+ st.title("🖼️ OCR Image to Text")
8
 
9
+ st.write("Upload an image (PNG, JPG, JPEG) to extract text.")
10
 
 
11
  uploaded_file = st.file_uploader("Upload Image", type=["png", "jpg", "jpeg"])
12
+ image = None
13
 
 
14
  if uploaded_file is not None:
15
+ # Display file metadata
16
+ st.write(f"**Filename:** {uploaded_file.name}")
17
+ st.write(f"**Type:** {uploaded_file.type}")
18
+ st.write(f"**Size:** {uploaded_file.size} bytes")
19
+
20
  try:
21
+ # Read bytes and open with PIL
22
+ bytes_data = uploaded_file.getvalue()
23
+ image = Image.open(io.BytesIO(bytes_data))
24
+ st.image(image, caption="Preview", use_column_width=True)
25
+ except Exception as e:
26
+ st.error(f"⚠️ Failed to open image: {e}")
27
 
28
+ # Only show extract button if image was loaded successfully
29
+ if image is not None:
30
+ if st.button("Extract Text"):
31
+ with st.spinner("Running OCR..."):
32
+ try:
33
  text = pytesseract.image_to_string(image)
34
+ st.success("✅ Text extracted!")
35
+ st.text_area("Extracted Text", value=text, height=300)
36
+ except Exception as e:
37
+ st.error(f"❌ OCR error: {e}")
38