Python3的图像库

Python3的图像库,python,image,python-3.x,python-imaging-library,Python,Image,Python 3.x,Python Imaging Library,python-3使用什么代替PIL来处理图像?截至2012年3月30日,我尝试使用GitHub上的sloonz fork打开图像,但失败。我把它编译好了,但它实际上不起作用。我还尝试构建gohlke的库,它也进行了编译,但没有打开任何图像。上面有人提到PythonMagick,但它只在Windows上编译。看 PIL最近一次更新是在2009年,虽然它的网站上说他们正在开发一个Python3端口,但已经3年了,邮件列表已经过时了 为了解决Python3图像处理问题,我使用subprocess.ca

python-3使用什么代替PIL来处理图像?

截至2012年3月30日,我尝试使用GitHub上的sloonz fork打开图像,但失败。我把它编译好了,但它实际上不起作用。我还尝试构建gohlke的库,它也进行了编译,但没有打开任何图像。上面有人提到PythonMagick,但它只在Windows上编译。看

PIL最近一次更新是在2009年,虽然它的网站上说他们正在开发一个Python3端口,但已经3年了,邮件列表已经过时了

为了解决Python3图像处理问题,我使用
subprocess.call()
执行ImageMagick shell命令。这种方法有效


请参阅。

Christoph Gohlke成功构建了适用于3.3以下python版本的PIL(仅适用于Windows):


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

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

Qt与图形非常配合。在我看来,它比PIL更通用

您可以获得图形处理所需的所有功能,但也有矢量图形,甚至支持真正的打印机。所有这些都在一个统一的API中

要使用Qt,您需要一个Python绑定:或。
它们都支持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是一个用于制作GUI应用程序的大型框架。

友好的PIL fork适用于Python 2和3。查看支持列表等。

如果需要,以下是如何在Python 3上安装它:

pip3 install Pillow
如果这对您不起作用(应该),请尝试正常的
pip

pip install Pillow

根据需要,这可能是最好的选择,操作远远超出了PIL和当前版本的枕头。保养得很好,至少和枕头一样好。此外,底层数据结构来自Numpy和Scipy,这使得其代码具有难以置信的互操作性。枕头无法处理的示例:


你可以从中看到它的力量。提供了一个很好的介绍。祝你好运

如果您使用的是Python3,还可以使用python2和Python3中的库pilasopensv。函数api调用与PIL或pillow中的函数api调用相同,但在内部,它与OpenCV和numpy一起工作以加载、保存和操作图像。请查看或使用pip安装PILasOPENCV进行安装。并非所有的PIL功能都已模拟,但最常见的功能仍能正常工作。

您是否检查了媒体模块?(导入媒体)@inspectorG4dget:media不在python3I的标准库中,我也不认为PIL是标准的。但看起来我是wrong@inspectorG4dget:不,你说得对,PIL不在标准库中。应该从PyPI安装
枕头
,它应该是
PIL
的替代品;这也是Python 2上的首选软件包。2014年10月,您可以
pip3安装Image
(我在不知道的情况下使用了pillow),并且。它现在也支持。在寻找python3的PIL时,这绝对是一个选择。