Versión: 2.x, 3.x (Pillow únicamente).
Introducción
Python Imaging Library (PIL) es una librería gratuita que permite la edición de imágenes directamente desde Python. Soporta una variedad de formatos, incluídos los más utilizados como GIF, JPEG y PNG. Una gran parte del código está escrito en C, por cuestiones de rendimiento.
Debido a que la librería soporta únicamente hasta la versión 2.7 de Python y, al parecer, no pretende avanzar con el desarrollo, Alex Clark y en colaboración con otros programadores ha desarrollado Pillow, una bifuración más «amigable», según el autor, de PIL que pretende mantener una librería estable y que se adapte a las nuevas teconologías (Python 3.x). Por esta razón, recomiendo siempre preferir Pillow en lugar de PIL.
De todas maneras, independientemende de la librería que se desee utilizar, su implementación para los usuarios se mantiene casi idéntica.
Descarga e instalación
Ahora PIL / Pillow se instala fácilmente vía pip:
pip install Pillow
Ejemplos
A continuación un pequeño código de fuente que hace uso de algunas de las posibilidades de efectos que provee la librería.
#!/usr/bin/env python # -*- coding: utf-8 -*- # # pileffects.py # # Copyright 2014 Recursos Python - www.recursospython.com # from PIL import Image, ImageChops, ImageEnhance, ImageOps def main(): image = Image.open("image.jpg") # Invertir colores. new_image = ImageChops.invert(image) new_image.save("image_1.jpg") # Escala de grises. new_image = ImageOps.grayscale(image) new_image.save("image_2.jpg") # Resaltar luces. new_image = ImageEnhance.Brightness(image).enhance(2) new_image.save("image_3.jpg") # Contraste. new_image = ImageEnhance.Contrast(image).enhance(4) new_image.save("image_4.jpg") # Espejo. new_image = ImageOps.mirror(image) new_image.save("image_5.jpg") # Cambiar tamaño. new_image = image.resize((320, 240)) new_image.save("image_6.jpg") # Diminuir nitidez. new_image = ImageEnhance.Sharpness(image).enhance(-4) new_image.save("image_7.jpg") if __name__ == "__main__": main()
Imágen original:
Nuevas imagenes generadas:
Curso online 👨💻
¡Ya lanzamos el curso oficial de Recursos Python en Udemy!
Un curso moderno para aprender Python desde cero con programación orientada a objetos, SQL y tkinter
en 2024.
Consultoría 💡
Ofrecemos servicios profesionales de desarrollo y capacitación en Python a personas y empresas. Consultanos por tu proyecto.
Rony says:
Tengo el mismo problema no corre el paquete pillow despues de ser instalado, si alguien sabe de este problema por favor comentenos.
Recursos Python says:
Hola, ¿qué error estás obteniendo?
Andres says:
Hola, una consulta, tenia instalado pillow con: pip install pillow funcionaba bien en mi version de python 3.11.0 no se que paso y dejo de reconocerme la libreria cuando la importo: from PIL import Image, ImageTk
la quiero volver a instala y me da el siguiente error cuando descomprime el paquete:
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pillow
Failed to build pillow
ERROR: Could not build wheels for pillow, which is required to install pyproject.toml-based projects
Ya probé de actualizar pip, chequear las dependencias hasta instalae la ultima version de python y nada, Me podrian dar alguna asistencia? Gracias
Recursos Python says:
Hola, ¿en qué sistema operativo estás trabajando?
hugovksy says:
Que buena la ventanita para ver el código u muy buena desde ya la publicación. Ahora con esto voy a hacer mi script destructor de imágenes 😛
¡Saludos!