IMAGENLIT / app.py
Marcepelaez's picture
Update
a040223 verified
raw
history blame
1.67 kB
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()