¿Qué usa python-3 en lugar de PIL para manipular imágenes?
Pillow
desde PyPI, que debe ser un reemplazo directo para PIL
; Este es el paquete preferido en Python 2 también.
¿Qué usa python-3 en lugar de PIL para manipular imágenes?
Pillow
desde PyPI, que debe ser un reemplazo directo para PIL
; Este es el paquete preferido en Python 2 también.
Respuestas:
La almohada "fork PIL amigable" funciona en Python 2 y 3 . Consulte el proyecto Github para la matriz de soporte, etc.
pip3 install Image
(yo estaba usando la almohada sin saberlo), y quefrom PIL import Image
. También es compatible con todas las plataformas principales ahora. Al buscar un PIL para python3, esta es definitivamente la opción.
Christoph Gohlke logró construir PIL (solo para Windows) para versiones de Python hasta 3.3: http://www.lfd.uci.edu/~gohlke/pythonlibs/
Probé su versión de PIL con Python 3.2 e imagen abierta / crear / manipulación de píxeles / guardar todo el trabajo.
Qt funciona muy bien con gráficos. En mi opinión, es más versátil que PIL.
Obtiene todas las funciones que desea 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: PySide o PyQt4 .
Ambos son compatibles con Python 3.
Aquí hay un ejemplo simple que carga una imagen JPG, dibuja un círculo antialias 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 GUI.
Al 30 de marzo de 2012, intenté y no pude obtener el fork de sloonz en GitHub para abrir imágenes. Lo compilé bien, pero en realidad no funcionó. También intenté construir la biblioteca de Gohlke, y también se compiló pero no se pudo abrir ninguna imagen. Alguien mencionó PythonMagick anteriormente, pero solo se compila en Windows. Vea PythonMagick en el wiki de wxPython .
PIL se actualizó por última vez en 2009, y si bien 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 bloqueado.
Para resolver mi problema de manipulación de imágenes de Python 3, estoy usando subprocess.call()
para ejecutar comandos de shell de ImageMagick. Este método funciona
Consulte la documentación del módulo de subproceso .
Desea la biblioteca Pillow , aquí se explica cómo instalarla en Python 3:
pip3 install Pillow
Si eso no funciona para usted (debería), intente lo normal pip
:
pip install Pillow
Dependiendo de lo que se necesite, scikit-image puede ser la mejor opción, con manipulaciones que van más allá de PIL y la versión actual de Pillow. Muy bien mantenido, al menos tanto como Pillow. Además, las estructuras de datos subyacentes son de Numpy y Scipy, lo que hace que su código sea increíblemente interoperable. Ejemplos que la almohada no puede manejar:
Puedes ver su poder en la galería . Este documento ofrece una gran introducción. ¡Buena suerte!
Si está en Python3, también puede usar la biblioteca PILasOPENCV que funciona en Python 2 y 3. Las llamadas a la API de función son las mismas que en PIL o almohada, pero internamente funciona con OpenCV y numpy para cargar, guardar y manipular imágenes. Eche un vistazo a https://github.com/bunkahle/PILasOPENCV o instálelo con pip install PILasOPENCV. No todas las funciones PIL se han simulado, pero las funciones más comunes funcionan.