pil para library for python image python-3.x python-imaging-library

python - para - pip install pillow



Biblioteca de imágenes para Python 3 (6)

¿Qué está usando python-3 en lugar de PIL para manipular imágenes?


Christoph Gohlke logró construir PIL (solo para Windows) para las versiones de Python hasta 3.3: http://www.lfd.uci.edu/~gohlke/pythonlibs/

Probé su versión de PIL con Python 3.2, y la imagen abre / crea / manipulación de píxeles / guarda todo el trabajo.


Desde el 30 de marzo de 2012, he intentado y no he podido obtener el tenedor sloonz en GitHub para abrir imágenes. Lo compilé bien, pero en realidad no funcionó. También intenté construir la biblioteca de Gohlke, y compiló también pero no pudo abrir ninguna imagen. Alguien mencionó PythonMagick arriba, pero solo compila en Windows. Ver PythonMagick en la wiki de wxPython .

PIL se actualizó por última vez en 2009, y aunque su sitio web dice que están trabajando en un puerto Python 3, han pasado 3 años y la lista de correo se ha vuelto fría.

Para resolver mi problema de manipulación de imágenes Python 3, estoy usando subprocess.call() para ejecutar los comandos del shell ImageMagick. Este método funciona.

Ver la documentación del módulo de subproceso .


Desea la biblioteca Pillow , aquí le mostramos cómo instalarla en Python 3:

pip3 install Pillow

Si eso no funciona para usted (debería), pruebe la pip normal:

pip install Pillow



Puedes usar mis mahotas paquete en Python 3. Está basado en numpy en lugar de basado en PIL.


Qt funciona muy bien con gráficos. En mi opinión, es más versátil que PIL.

Obtienes todas las características que deseas para la manipulación de gráficos, pero también hay gráficos vectoriales e incluso soporte para impresoras reales. Y todo eso en una API uniforme, QPainter .

Para usar Qt necesita un enlace de Python para ello: PySide o PyQt4 .
Ambos soportan Python 3.

Aquí hay un ejemplo simple que carga una imagen JPG, dibuja un círculo antialiased de radio 10 en las coordenadas (20, 20) con el color del píxel que estaba en esas coordenadas y guarda la imagen modificada como un archivo PNG:

from PySide.QtCore import * from PySide.QtGui import * app = QCoreApplication([]) img = QImage(''input.jpg'') g = QPainter(img) g.setRenderHint(QPainter.Antialiasing) g.setBrush(QColor(img.pixel(20, 20))) g.drawEllipse(QPoint(20, 20), 10, 10) g.end() img.save(''output.png'')

Pero tenga en cuenta que esta solución es bastante ''pesada'', porque Qt es un gran marco para hacer aplicaciones de GUI.