Pillow: procesamiento de imágenes en Python

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Fundamentos de la librería Pillow en Python

Trabajar con imágenes es una parte esencial del desarrollo de software moderno. Desde la creación de aplicaciones web con generación dinámica de contenido hasta el desarrollo de sistemas de visión artificial y machine learning, en todas partes se necesitan herramientas para procesar datos gráficos. La librería Pillow (Python Imaging Library) es una solución potente y versátil para trabajar con imágenes en el ecosistema Python.

Pillow es un fork activo de la librería original PIL, creada en 1995 por Fredrik Lund. Tras el cese del desarrollo de PIL en 2011, Alex Clark y la comunidad de desarrolladores crearon Pillow, garantizando la compatibilidad con la API original y añadiendo numerosas funciones y mejoras.

Las principales ventajas de Pillow incluyen su facilidad de uso, un amplio soporte de formatos gráficos, un rico conjunto de herramientas para editar y analizar imágenes, y un activo respaldo de la comunidad. La librería se usa ampliamente en desarrollo web, computación científica, machine learning y automatización de procesos gráficos.

Acerca de la librería Pillow

Historia y evolución

Pillow se creó como un fork de PIL (Python Imaging Library) para garantizar la compatibilidad con Python 3 y solucionar los problemas de instalación de la librería original. El nombre "Pillow" proviene de la palabra inglesa "almohada" y es un juego de palabras con las siglas PIL.

La librería se ha desarrollado activamente desde 2010 y cuenta con el respaldo de una gran comunidad de desarrolladores. Las actualizaciones periódicas incluyen soporte para nuevos formatos de imagen, mejoras de rendimiento, parches de seguridad y ampliación de funcionalidades.

Arquitectura y principios de funcionamiento

Pillow está construida sobre principios de programación orientada a objetos. El elemento central es la clase Image, que representa una imagen en memoria. Todas las operaciones con imágenes se realizan a través de métodos de esta clase o de módulos relacionados.

La librería admite evaluación perezosa (lazy evaluation), lo que significa que muchas operaciones no se ejecutan de inmediato, sino que se postergan hasta el momento de guardar o de una llamada explícita. Esto permite optimizar cadenas de transformaciones y mejora el rendimiento.

Módulos y componentes principales

Pillow consta de varios módulos clave:

  • Image — módulo principal para trabajar con imágenes
  • ImageDraw — módulo para dibujar primitivas y texto
  • ImageFilter — conjunto de filtros predefinidos
  • ImageEnhance — herramientas para mejorar la calidad de las imágenes
  • ImageFont — trabajo con fuentes
  • ImageColor — utilidades para trabajar con colores
  • ImageOps — operaciones adicionales con imágenes

Instalación y configuración

Instalación estándar

pip install pillow

Instalación con dependencias adicionales

Para funcionalidades avanzadas, puedes instalar librerías adicionales:

pip install pillow[imaging]  # Códecs adicionales
pip install pillow[extra]    # Todas las dependencias adicionales

Verificar la instalación

from PIL import Image
import PIL
print(PIL.__version__)
print(PIL.features.check_feature('webp'))  # Verificar soporte WebP

Operaciones básicas con imágenes

Abrir y obtener información básica de imágenes

from PIL import Image

# Abrir una imagen
img = Image.open("ejemplo.jpg")

# Obtener información básica
print(f"Formato: {img.format}")
print(f"Tamaño: {img.size}")
print(f"Modo de color: {i                    

Recommendations