Ce qui utilise python-3 au lieu de PIL pour manipuler des Images ?
Réponses
Trop de publicités?La « fourchette PIL amicale » oreiller fonctionne sur Python 2 et 3. Découvrez le projet Github pour matrice de support et ainsi de suite.
Christoph Gohlke a réussi à construire PIL (pour Windows uniquement) pour les versions de python jusqu'à 3.3 : http://www.lfd.uci.edu/~gohlke/pythonlibs/
J’ai essayé sa version de PIL avec Python 3.2 et ouvrir/créer/pixel image manipulation/enregistrer tous les travaux.
Qt fonctionne très bien avec des graphiques. À mon avis, il est plus polyvalent que PIL.
Vous bénéficiez de toutes les fonctionnalités que vous souhaitez pour la manipulation de graphiques, mais il y a aussi des graphiques vectoriels et de soutien, même pour de vrai imprimantes. Et tout cela dans une API uniforme, QPainter
.
L'utilisation de Qt vous avez besoin d'un binding Python pour elle: PySide ou PyQt4.
Deux types de Python 3.
Voici un exemple simple qui charge une image JPG, dessine un anticrénelage de cercle de rayon 10 , au point de coordonnées (20, 20) avec la couleur du pixel qui était à ces coordonnées et enregistre la modification de l'image 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')
Mais s'il vous plaît noter que cette solution est très "lourd", parce que Qt est un grand cadre pour faire des applications avec interface graphique.
En date du 30 Mars 2012, j'ai essayé et échoué à obtenir le sloonz fork sur GitHub pour ouvrir des images. J'ai réussi à compiler ok, mais il n'a pas de travail. J'ai aussi essayé avec la construction de gohlke de la bibliothèque, et compilé aussi mais impossible d'ouvrir les images. Quelqu'un a mentionné PythonMagick ci-dessus, mais il ne compile sous Windows. Voir PythonMagick sur le wxPython wiki.
PIL a été mise à jour en 2009, et, bien que ce site dit qu'ils travaillent sur un Python 3 de port, ça fait 3 ans, et la liste de diffusion a disparu froid.
Pour résoudre mon Python 3 de manipulation d'images de problème, je suis en utilisant subprocess.call()
d'exécuter ImageMagick des commandes shell. Cette méthode fonctionne.