Spaces:
Sleeping
Sleeping
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() | |