Spaces:
Sleeping
Sleeping
Create app
Browse files
app.py
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import io
|
2 |
+
from PIL import Image, ImageOps
|
3 |
+
import streamlit as st
|
4 |
+
|
5 |
+
def remove_metadata(image: Image):
|
6 |
+
# Convertir a modo RGB y eliminar la metadata
|
7 |
+
data = io.BytesIO()
|
8 |
+
image.save(data, format="JPEG", quality=95, optimize=True)
|
9 |
+
data.seek(0)
|
10 |
+
return Image.open(data)
|
11 |
+
|
12 |
+
def resize_image(image: Image, percentage: float):
|
13 |
+
# Redimensionar la imagen manteniendo la proporci贸n
|
14 |
+
width, height = image.size
|
15 |
+
new_size = (int(width * percentage), int(height * percentage))
|
16 |
+
resized_image = image.resize(new_size, Image.ANTIALIAS)
|
17 |
+
return resized_image
|
18 |
+
|
19 |
+
def main():
|
20 |
+
st.title("Image Resize and Metadata Remover")
|
21 |
+
|
22 |
+
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
|
23 |
+
|
24 |
+
if uploaded_file is not None:
|
25 |
+
image = Image.open(uploaded_file)
|
26 |
+
|
27 |
+
st.image(image, caption="Original Image", use_column_width=True)
|
28 |
+
|
29 |
+
percentage = st.slider("Select resize percentage", 10, 100, 50)
|
30 |
+
|
31 |
+
resized_image = resize_image(image, percentage / 100)
|
32 |
+
resized_image_no_metadata = remove_metadata(resized_image)
|
33 |
+
|
34 |
+
st.image(resized_image_no_metadata, caption="Resized Image without Metadata", use_column_width=True)
|
35 |
+
|
36 |
+
# Para permitir descargar la imagen
|
37 |
+
buf = io.BytesIO()
|
38 |
+
resized_image_no_metadata.save(buf, format="JPEG", quality=85)
|
39 |
+
byte_im = buf.getvalue()
|
40 |
+
|
41 |
+
st.download_button(label="Download Image", data=byte_im, file_name="resized_image.jpg", mime="image/jpeg")
|
42 |
+
|
43 |
+
if _name_ == "_main_":
|
44 |
+
main()
|