Spaces:
Running
Running
File size: 1,777 Bytes
d8237e6 6f76902 aec01ff d8237e6 0fdf15f d8237e6 e1a05e8 67bbbbc e1a05e8 d8237e6 aec01ff d8237e6 6f76902 d8237e6 aec01ff d0e5ac1 d8237e6 0b2b515 d8237e6 aec01ff d8237e6 f374dbc d8237e6 009280d aec01ff 12f13fb d8237e6 aec01ff |
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 |
import gradio as gr
from PIL import Image
import os
import ffmpeg
gr.themes.Soft()
# Ambil daftar format gambar yang didukung oleh Pillow
supported_formats = 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']
def convert_image_ffmpeg(image, target_format):
try:
# 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()}"
# Perintah FFmpeg untuk mengonversi gambar
ffmpeg.input(image).output(output_file, format=target_format).overwrite_output().run() # Supaya tidak menampilkan output FFmpeg di konsol
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_ffmpeg,
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 using FFmpeg. Supports popular image formats.",
css="footer {visibility: hidden}"
)
# Jalankan aplikasi
if __name__ == "__main__":
interface.launch() |