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