Ver más publicaciones del año 2023

Script de Python para comprimir imágenes

En alguna oportunidad es necesario reducir el peso de las imágenes y esa empresa puede verse abandonada cuando se trata de cierta cantidad de imágenes. O por decirlo de otra manera, mandamos todo al carajo y pasamos a otra cosa por tedioso, que queden las imágenes con el peso que tiene y las mil horas de carga, pero no, no: debemos luchar constra esos demonios. Es ahí donde un script como este, que reduce en masa el peso de los archivos JPG y PNG. Si son PNG las pasa a JPG. En caso de que el PNG tenga canal Alfa (sin fondo), coniverte con fondo negro.

Veamos un poco el código a ver de qué se trata:

import os
from PIL import Image

cwd = os.getcwd()

print (cwd)
for archivo in os.listdir(cwd):
    if archivo.endswith('.jpg') or archivo.endswith('.png'):
        im = Image.open(archivo)
        x, y = im.size
        nombre_archivo = archivo.split(".")[0]
        extension_archivo = archivo.split(".")[1]
        print ("El ancho de la imagen es: "+str(x))
        print ("El alto de la imagen es: "+str(y))
        print ("=========================")

        if extension_archivo == "png":
            print ("Es PNG. Convirtiendo a JPG \n\n")
            im = im.convert("RGB")
            im.save(cwd+"/"+nombre_archivo+"-imagen_nueva.jpg","JPEG", quality=30, optimize=True) 

        else:
            im.save(cwd+"/"+nombre_archivo+"-imagen_nueva.jpg",quality=30, optimize=True) 

Primero, cabe aclarar, necesitamos el módulo Pillow, si no tenemos hay que instalarlo:

pip install pillow

Después examinamos en qué ruta estamos parados y examinamos el directorio con el FOR. Si los archivos terminan con JPG o PNG te muestra el ancho y alto de la misma y posteriormente, te corta la misma por un lado con su nombre y por el otro, con la extensión. Si llegase a ser la extensión PNG, lo que hace es convertirla a RGB y luego la graba como JPG, si no continúa el bucle y realiza ese último proceso.

El script se encuentra disponible también en el repo que armé (se llama 09-comprimir imagenes.py):

Descargar Script

Mis Scripts Python

Flecha ArribaArriba


Escrito por: Hugovksy, el día: