Spaces:
Running
Running
File size: 1,797 Bytes
d8237e6 6f76902 aec01ff d8237e6 4b959ff 0fdf15f 4b959ff e1a05e8 67bbbbc e1a05e8 d8237e6 aec01ff d8237e6 6f76902 d8237e6 4b959ff d0e5ac1 d8237e6 4b959ff d8237e6 aec01ff d8237e6 4b959ff d8237e6 4b959ff 009280d 4b959ff d8237e6 4b959ff |
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 |
import gradio as gr
from PIL import Image
import os
import ffmpeg
# Atur tema Gradio
gr.themes.Soft()
# Format gambar yang didukung
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()}"
# Gunakan ffmpeg untuk konversi
(
ffmpeg
.input(image)
.output(output_file, format=target_format)
.overwrite_output()
.run(capture_stdout=True, capture_stderr=True)
)
return output_file
except Exception as e:
return f"Error: {e}"
# Antarmuka Gradio
interface = gr.Interface(
fn=convert_image_ffmpeg,
inputs=[
gr.Image(label="Upload Image", type="filepath", height=512), # Input gambar
gr.Dropdown(label="Select Target Format", choices=supported_formats) # Pilih format
],
outputs=gr.File(label="Converted Image"), # Output file hasil
title="Image Format Converter",
description="Upload an image and select any target format for conversion using FFmpeg.",
css="footer {visibility: hidden}" # Sembunyikan footer
)
# Jalankan aplikasi
if __name__ == "__main__":
interface.launch()
|