Spaces:
Running
Running
| import gradio as gr | |
| from PIL import Image | |
| import io | |
| import os | |
| def compress_images(*image_paths): | |
| compressed_files = [] | |
| for image_path in image_paths: | |
| if image_path is not None: | |
| img = Image.open(image_path) | |
| compressed_io = io.BytesIO() | |
| img.save(compressed_io, format='JPEG', quality=80) | |
| compressed_io.seek(0) | |
| compressed_filename = f"compressed_{os.path.basename(image_path)}" | |
| with open(compressed_filename, "wb") as f: | |
| f.write(compressed_io.read()) | |
| compressed_files.append(compressed_filename) | |
| else: | |
| compressed_files.append(None) | |
| return compressed_files | |
| image_inputs = [gr.Image(type="filepath", label=f"Upload Image {i+1}") for i in range(5)] | |
| interface = gr.Interface( | |
| fn=compress_images, | |
| inputs=image_inputs, | |
| outputs=[gr.File(label=f"Download Compressed Image {i+1}") for i in range(5)], | |
| title="Multi-Image Compressor", | |
| description="Upload up to 5 images to compress them and download the compressed versions." | |
| ) | |
| interface.launch() |