Python 3的图像库

153 投票
8 回答
177284 浏览
提问于 2025-04-16 05:14

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上试过,打开图像、创建图像、处理像素和保存图像这些功能都能正常使用。

96

这个“友好的PIL分支”Pillow可以在Python 2和3上使用。你可以去Github项目看看支持情况和其他信息。

撰写回答