Jan*_*sen 99
"友好的PIL fork" Pillow适用于Python 2和3.查看Github项目的支持矩阵等.
Ole*_*pin 14
Qt适用于图形.在我看来,它比PIL更通用.
您可以获得图形处理所需的所有功能,但也有矢量图形甚至支持真正的打印机.所有这一切都在一个统一的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')
Run Code Online (Sandbox Code Playgroud)
但请注意,这个解决方案非常"重量级",因为Qt是一个用于制作GUI应用程序的大型框架.
小智 7
截至2012年3月30日,我已尝试并未能在GitHub上获取sloonz分叉以打开图像.我得到它编译确定,但它实际上没有工作.我也试过构建gohlke的库,它也编译但是没能打开任何图像.有人提到上面的PythonMagick,但它只在Windows上编译.请参阅wxPython wiki上的PythonMagick.
PIL最后一次更新是在2009年,虽然它的网站上说他们正在开发Python 3端口,但它已经3年了,而且邮件列表已经变冷了.
为了解决我的Python 3图像处理问题,我subprocess.call()用来执行ImageMagick shell命令.这种方法有效.
请参阅子进程模块文档.
你想要Pillow库,这里是如何在Python 3上安装它:
pip3 install Pillow
Run Code Online (Sandbox Code Playgroud)
如果这对您不起作用(应该),请尝试正常pip:
pip install Pillow
Run Code Online (Sandbox Code Playgroud)