import gradio as gr from pdf2image import convert_from_path from PIL import Image def process_file(file, file_type): if file is None: return None, "File tidak diunggah dengan benar. Silakan coba lagi." if file_type == "PDF": try: # Mengonversi PDF ke gambar images = convert_from_path(file.name) # Menyimpan gambar pertama sebagai output image = images[0] # Mengambil halaman pertama return image, None except Exception as e: return None, f"Terjadi kesalahan saat memproses file PDF: {str(e)}" elif file_type == "Image": try: # Menampilkan gambar image = Image.open(file.name) return image, None except Exception as e: return None, f"Terjadi kesalahan saat memproses file gambar: {str(e)}" # Buat antarmuka Gradio file_type_radio = gr.Radio(choices=["Image", "PDF"], label="Pilih tipe file") file_input = gr.File(label="Unggah file", file_types=["image", "pdf"]) interface = gr.Interface( fn=process_file, inputs=[file_input, file_type_radio], outputs=[gr.Image(type="pil", label="Hasil Gambar"), gr.Textbox(label="Hasil PDF")], title="Proses File Gambar dan PDF", description="Pilih tipe file dan unggah file gambar atau PDF untuk diproses." ) # Jalankan antarmuka dengan opsi share=True interface.launch(share=True)