File size: 2,500 Bytes
608f890
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8de9de5
5ba2e91
608f890
5ba2e91
 
 
608f890
 
5ba2e91
608f890
 
 
8de9de5
608f890
 
 
 
 
 
 
 
 
 
 
 
 
 
5ba2e91
608f890
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5ba2e91
 
608f890
5ba2e91
 
608f890
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import streamlit as st  # Web App
from PIL import Image  # Image Processing (Pillow)
import numpy as np  # Dipertahankan untuk konsistensi meskipun tidak digunakan untuk fungsi inti

# =========================
# FUNGSI UTILITAS: MEMUAT ARTIFAK/MODEL KOSONG
# =========================

# Kita buat fungsi dummy ini agar struktur kode Anda mirip dengan kode OCR
# yang memisahkan pemuatan sumber daya
# Gunakan st.cache_data (pengganti st.cache untuk data) 
# atau st.cache_resource (untuk model) - di sini pakai data karena outputnya sederhana
@st.cache_data
def load_placeholder_artifact():
    """Memuat artefak placeholder agar struktur kode mirip dengan OCR."""
    return True

# =========================
# KONFIGURASI DAN JUDUL
# =========================

st.set_page_config(
    page_title="Upload Gambar Sederhana",
    layout="centered"
)

st.title("Upload & Tampilkan Gambar Sederhana 📸")
st.markdown("---")

# =========================
# LOGIKA UTAMA APLIKASI
# =========================

# Panggil fungsi placeholder, mirip seperti Anda memanggil load_model()
is_loaded = load_placeholder_artifact() 

if is_loaded:

    # Image Uploader (menggunakan label dan type yang sama)
    image_file = st.file_uploader(
        label="Upload gambar Anda di sini",
        type=['png', 'jpg', 'jpeg']
    )
    
    if image_file is not None:
    
        st.markdown("### 🖼️ Pratinjau Gambar")
        
        with st.spinner("⏳ Sedang memuat gambar..."):
            
            # 1. Baca gambar menggunakan PIL (persis seperti di kode OCR)
            try:
                input_image = Image.open(image_file) 
            except Exception as e:
                st.error(f"❌ Gagal membaca file gambar. Error: {e}")
                st.warning("Pastikan file yang diunggah adalah gambar yang valid.")
                return # Hentikan jika gagal baca
                
            # 2. Tampilkan Gambar (persis seperti di kode OCR)
            st.image(input_image, caption=image_file.name, use_column_width=True) 
            
            # Opsional: Tampilkan dimensi
            st.caption(f"Dimensi: {input_image.width} x {input_image.height} piksel")

        st.success("✅ Gambar berhasil diunggah dan ditampilkan!")
        st.balloons()
    else:
        st.info("⬆️ Silakan unggah gambar PNG, JPG, atau JPEG.")

else:
    st.error("Gagal memuat artefak/sumber daya awal.")

st.markdown("---")
st.caption("Fungsionalitas ini hanya untuk menguji `st.file_uploader`.")