Python - Duda con un programa

 
Vista:
Imágen de perfil de Victorio Jesús Molina Bermejo
Val: 9
Ha disminuido su posición en 8 puestos en Python (en relación al último mes)
Gráfica de Python

Duda con un programa

Publicado por Victorio Jesús Molina Bermejo (6 intervenciones) el 21/08/2019 07:47:43
Buenas, acabo de hacer un programa que hace "resize" a una imagen dada,, dando uso a la librería Pillow.

El programa funciona con las siguientes extensiones: [".jpg", ".jpeg", ".png", ".bmp", ".tiff", ".raw"]

La idea es, dado un numero n, multiplicar el tamaño de la imagen por el mismo, y guardarla con las nuevas dimensiones.


El vector de argumentos del programa seria:

vargs[0] = nombre_del_programa.py
vargs[1] = imagen.jpg
vargs[2] = n
vargs[3] = nombre_imagen_a_guardar


El caso es que me he dado cuenta de que al guardar ciertas imágenes aumentadas en n = 1, el número de bytes de la nueva imagen es inferior a los de la original. ¿Esto por qué es? Lo único que se me ocurre es que al guardar la nueva imagen, esta pierda algunos metadatos de la original, ya que a simple vista la calidad de imagen se mantiene... Pero ni idea de si estoy en lo cierto.


Aquí les dejo el código:

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
from PIL import Image
from sys import argv
 
 
def main():
    if len(argv) != 4:
        exit("Usage: file image_name n image_to_save")
 
    image_name = argv[1]
    n = int(argv[2])
    image_to_save = argv[3]
    extensions = [".jpg", ".jpeg", ".png", ".bmp", ".tiff", ".raw"]
    format_detected = ".jpg"  # Por defecto
 
    for extension in extensions:
        if extension in image_to_save:
            image_to_save = image_to_save.replace(extension, "")
            format_detected = extension
 
    image = Image.open(image_name)
    height, width = image.size
    image = image.resize((height*n, width*n))
    image.save(f"{image_to_save}(x{n}){format_detected}")
 
 
if __name__ == '__main__':
    main()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder