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