File size: 1,665 Bytes
4136906
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a040223
4136906
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d17d91d
 
 
e9eb131
4136906
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
import io
from PIL import Image, ImageOps
import streamlit as st

def remove_metadata(image: Image):
    # Convertir a modo RGB y eliminar la metadata
    data = io.BytesIO()
    image.save(data, format="JPEG", quality=95, optimize=True)
    data.seek(0)
    return Image.open(data)

def resize_image(image: Image, percentage: float):
    # Redimensionar la imagen manteniendo la proporción
    width, height = image.size
    new_size = (int(width * percentage), int(height * percentage))
    resized_image = image.resize(new_size, Image.Resampling.LANCZOS)  # Usar LANCZOS en lugar de ANTIALIAS
    return resized_image

def main():
    st.title("Image Resize and Metadata Remover")
    
    uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])

    if uploaded_file is not None:
        image = Image.open(uploaded_file)

        st.image(image, caption="Original Image", use_column_width=True)

        percentage = st.slider("Select resize percentage", 10, 100, 50)

        resized_image = resize_image(image, percentage / 100)
        resized_image_no_metadata = remove_metadata(resized_image)

        st.image(resized_image_no_metadata, caption="Resized Image without Metadata", use_column_width=True)

        # Para permitir descargar la imagen
        buf = io.BytesIO()
        resized_image_no_metadata.save(buf, format="JPEG", quality=85)
        byte_im = buf.getvalue()

        st.download_button(label="Download Image", data=byte_im, file_name="resized_image.jpg", mime="image/jpeg")

    # Firma personal al final
    st.markdown("Hecho en MDQ con amor ❤️ por Peláez.")

if __name__ == "__main__":
    main()