Python 3的图像库

python-3用什么来代替PIL来处理Images?

“友好的PIL叉” 枕头在Python 2和3上工作 。 查看Github项目的支持matrix等等。

Christoph Gohlke成功构build了PIL(仅适用于Windows),版本高达3.3: http ://www.lfd.uci.edu/~gohlke/pythonlibs/

我用Python 3.2试了他的PIL版本,并打开/创build/像素操作/保存所有的工作。

Qt在graphics方面效果很好。 在我看来,它比PIL更通用。

你可以获得所有你想要的graphics处理function,但也有vectorgraphics,甚至支持真正的打印机。 而所有这一切都在一个统一的API, QPainter

要使用Qt,你需要一个Python绑定: PySide或者PyQt4
他们都支持Python 3。

下面是一个简单的例子,加载一个JPG图像,在坐标(20,20)处绘制半径为10的反锯齿圆,并使用像素在这些坐标处的颜色,并将修改后的图像保存为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') 

但请注意,这个解决scheme相当“重量级”,因为Qt是制作GUI应用程序的一个大框架。

截至2012年3月30日,我已经尝试过,并没有得到在GitHub的szonz分叉打开图像。 我得到它编译好,但它并没有真正的工作。 我也尝试build设gohlke的图书馆,也编译,但没有打开任何图像。 有人提到上面的PythonMagick,但它只在Windows上编译。 请参阅wxPython wiki上的PythonMagick 。

PIL最后在2009年更新,虽然它的网站上说他们正在使用Python 3端口,但已经过了3年了,邮件列表已经变冷了。

为了解决我的Python 3image processing问题,我使用subprocess.call()来执行ImageMagick shell命令。 这个方法有效。

请参阅子stream程模块文档 。

你可以在Python 3上使用我的包mahotas 。它是基于numpy的,而不是基于PIL的。

你需要Pillow库 ,下面是如何在Python 3上安装它:

 pip3 install Pillow 

如果这不适合你(它应该),请尝试正常pip

 pip install Pillow