Instalar PIL / Pillow y aplicar efectos visuales



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

Las distribuciones de Linux Ubuntu, Fedora, Debian y ArchLinux incluyen Pillow por defecto.

Para Windows, Mac OS X y Linux, puedes encontrar las descargas de PIL en este enlace. Instaladores alternativos, no oficiales para Microsoft Windows, tanto 32 como 64 bits, en este enlace.

Pillow es algo más organizado, con mayor documentación y, por lo tanto, cuenta con una guía de instalación bastante completa. Su página en PyPI reúne las descargas para todas las plataformas, incluído el código de fuente comprimido en un archivo ZIP.

Como alternativa para ambas librerías, puedes utilizar pip:

pip install PIL

O bien:

pip install Pillow

En caso de haber descargado el código de fuente, deberás extraer el archivo ZIP, situarte en el directorio y ejecutar:

python setup.py install

Además, Pillow provee la opción de utilizar easy_install:

easy_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:

Vista previa

Nuevas imagenes generadas:

Vista previa

Vista previa

Vista previa

Vista previa

Vista previa

Vista previa

Vista previa



Deja un comentario