Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from PIL import Image | |
| import os | |
| gr.themes.Soft() | |
| # Ambil daftar format gambar yang didukung oleh Pillow | |
| supported_formats = [data.upper() for data in (sorted(Image.SAVE.keys()) or ['BLP', 'BMP', 'BUFR', 'DDS', 'DIB', 'EPS', | |
| 'GIF', 'GRIB', 'HDF5', 'ICNS', 'ICO', 'IM', | |
| 'JPEG', 'JPEG2000', 'MPO', 'MSP', 'PALM', 'PCX', | |
| 'PDF', 'PNG', 'PPM', 'SGI', 'SPIDER', 'TGA', 'TIFF', | |
| 'WEBP', 'WMX', 'XBM']) if data not in ['BLP', 'BUFR', 'GRIB', 'HDF5', 'MSP', 'PALM', 'WMV', 'XBM']] | |
| def convert_image(image, target_format): | |
| try: | |
| # Buka file gambar | |
| img = Image.open(image) | |
| # Ambil nama file asli tanpa ekstensi | |
| base_name = os.path.splitext(os.path.basename(image))[0] | |
| # Nama file keluaran dengan awalan yang diinginkan | |
| output_file = f"flowly_ai_image_converter_{base_name}.{target_format.lower()}" | |
| # Simpan gambar dalam format yang dipilih | |
| img.save(output_file, format=target_format.upper()) | |
| return output_file | |
| except Exception as e: | |
| return f"Error: {e}" | |
| # Antarmuka Gradio dengan tema kustom untuk menyembunyikan footer | |
| interface = gr.Interface( | |
| fn=convert_image, | |
| inputs=[ | |
| gr.Image(label="Upload Image", type="filepath", height=512), # Atur tinggi gambar input | |
| gr.Dropdown(label="Select Target Format", choices=supported_formats) | |
| ], | |
| outputs=gr.File(label="Converted Image"), | |
| title="Image Format Converter", | |
| description="Upload an image and select any target format for conversion. Supports all formats recognized by Pillow.", | |
| css="footer {visibility: hidden}" | |
| ) | |
| # Jalankan aplikasi | |
| if __name__ == "__main__": | |
| interface.launch() | |