Python 3的图像库
Python 3在处理图像时用什么代替PIL库呢?
8 个回答
13
Qt在处理图形方面表现得非常好。在我看来,它比PIL更灵活。
你可以得到所有你想要的图形处理功能,还有矢量图形的支持,甚至可以直接与真实的打印机连接。而这一切都通过一个统一的接口来实现,叫做 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')
但请注意,这个解决方案相对来说比较“重”,因为Qt是一个用于制作图形用户界面应用的大型框架。
18
Christoph Gohlke成功为Windows系统制作了PIL(Python Imaging Library,图像处理库),支持的Python版本最高到3.3。你可以在这里找到:http://www.lfd.uci.edu/~gohlke/pythonlibs/
我用他的PIL版本在Python 3.2上试过,打开图像、创建图像、处理像素和保存图像这些功能都能正常使用。