Qu'est-ce que python-3 utilise au lieu de PIL pour manipuler des images?
Le "fork convivial PIL" Oreiller fonctionne sur Python 2 et 3 . Découvrez le projet Github pour la matrice de support, etc.
Christoph Gohlke a réussi à créer PIL (pour Windows uniquement) pour python versions jusqu'à la version 3.3: http://www.lfd.uci.edu/~gohlke/pythonlibs/
J'ai essayé sa version de PIL avec Python 3.2, et une image ouverte/créer/manipulation de pixels/enregistrer tout le travail.
Qt fonctionne très bien avec les graphiques. À mon avis, il est plus polyvalent que PIL.
Vous disposez de toutes les fonctionnalités souhaitées pour la manipulation graphique, mais il existe également des graphiques vectoriels et même un support pour les imprimantes réelles. Et tout cela dans une API uniforme, QPainter
.
Pour utiliser Qt, vous avez besoin d'une liaison Python: PySide ou PyQt4 .
Ils supportent tous les deux Python 3.
Voici un exemple simple qui charge une image JPG, dessine un cercle anti-aliasé de rayon 10 aux coordonnées (20, 20) avec la couleur du pixel qui était à ces coordonnées et enregistre l'image modifiée en tant que fichier 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')
Cependant, notez que cette solution est assez "lourde", car Qt est un cadre important pour la création d'applications à interface graphique.
Au 30 mars 2012, j’avais essayé et j’avais échoué à ouvrir la fourche de sloonz sur GitHub. Je l’ai bien compilé, mais cela n’a pas fonctionné. J'ai également essayé de construire la bibliothèque de gohlke, qui compilait également mais ne pouvait ouvrir aucune image. Quelqu'un a mentionné PythonMagick ci-dessus, mais il ne compile que sous Windows. Voir PythonMagick sur le wiki wxPython .
La dernière version de PIL a été mise à jour en 2009, et bien que son site Web indique qu’ils travaillent sur un port Python 3, cela fait 3 ans et la liste de diffusion a pris froid.
Pour résoudre mon problème de manipulation d’image Python 3, j’utilise subprocess.call()
pour exécuter les commandes du shell ImageMagick. Cette méthode fonctionne.
Vous voulez la bibliothèque Pillow, voici comment l'installer sur Python 3:
pip3 install Pillow
Si cela ne fonctionne pas pour vous (cela devrait), essayez la méthode normale pip
:
pip install Pillow
Vous pouvez utiliser mon paquet mahotas sur Python 3. Il est basé sur numpy plutôt que sur PIL.
En fonction des besoins, scikit-image peut constituer le meilleur choix, les manipulations allant bien au-delà de PIL et de la version actuelle de Pillow. Très bien entretenu, au moins autant que Pillow. De plus, les structures de données sous-jacentes proviennent de Numpy et Scipy, ce qui rend son code incroyablement interopérable. Exemples que l'oreiller ne peut pas gérer:
Vous pouvez voir son pouvoir dans le galerie . Ce document fournit une excellente introduction à celui-ci. Bonne chance!
Si vous êtes sur Python3, vous pouvez également utiliser la bibliothèque PILasOPENCV qui fonctionne dans Python 2 et 3. Les appels de fonctions api sont les mêmes que dans PIL ou pillow mais en interne, cela fonctionne avec OpenCV et numpy pour charger, enregistrer et sauvegarder. manipuler des images. Jetez un oeil à https://github.com/bunkahle/PILasOPENCV ou installez-le avec pip install PILasOPENCV. Toutes les fonctions PIL n’ont pas été simulées, mais les fonctions les plus courantes fonctionnent.