File size: 1,096 Bytes
18d93f0
 
 
5afa10e
18d93f0
5afa10e
 
 
 
 
 
b4e8db6
5afa10e
 
 
 
 
 
 
 
 
 
18d93f0
 
5afa10e
 
 
 
 
18d93f0
 
5afa10e
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
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()