Pillow (biblioteca de código abierto)
# Pillow (biblioteca de código abierto)

Pillow es una biblioteca adicional gratuita y de código abierto para el lenguaje de programación Python que agrega soporte para abrir, manipular y guardar muchos formatos de archivo de imagen diferentes. Está disponible para Windows, Mac OS X y Linux. La última versión de PIL es 1.1.7, se lanzó en septiembre de 2009 y es compatible con Python 1.5.2–2.7.

El desarrollo parece haberse interrumpido, y el último compromiso con el repositorio PIL se realizó en 2011. En consecuencia, un proyecto sucesor llamado Pillow ha bifurcado el repositorio PIL y ha agregado compatibilidad con Python 3.x. Esta bifurcación ha sido adoptada como un reemplazo para el PIL original en distribuciones de Linux incluyendo Debian y Ubuntu (desde 13.04).

## Características

Pillow ofrece varios procedimientos estándar para la manipulación de imágenes. Éstos incluyen:

* Manipulaciones por píxel,
* Manipulación de enmascaramiento y transparencia,
* Filtrado de imágenes, como desenfoque, contorno, suavizado o búsqueda de bordes,
* Mejora de la imagen, como nitidez, ajuste de brillo, contraste o color,
* Agregar texto a las imágenes y mucho más.

Algunos de los formatos de archivo admitidos son PPM, PNG, JPEG, GIF, TIFF y BMP. También es posible crear nuevos decodificadores de archivos para expandir la biblioteca de formatos de archivo accesibles.

## Ventaja

Algunas bibliotecas podrían utilizar más potencia de procesamiento que otras. Por ejemplo, unidad de procesamiento de gráficos o CPU de varios núcleos. En algunos casos, esto podría ser una ventaja porque reduce el tiempo de ejecución. Por ejemplo, si el tiempo de ejecución con un núcleo es de 2 segundos, la biblioteca puede reducirlo a 0,5 segundos con 4 núcleos. Esta biblioteca tiene una ventaja sobre la biblioteca que realiza la misma operación en 1 segundo pero no puede usar múltiples núcleos.

Sin embargo, a veces el rendimiento general es más importante que el tiempo de ejecución. Si se necesita realizar la operación sobre un grupo de imágenes, se puede hacer en paralelo. En este caso, el rendimiento de la primera biblioteca sigue siendo el mismo: 2 operaciones por segundo. El rendimiento de la segunda biblioteca es de 4 operaciones por segundo.

