向后不兼容的更改
Python 2.7
Pillow已经放弃了对Python2.7的支持,Python2.7在2020年1月1日达到了生命的尽头。
Pillow版本常数
PILLOW_VERSION
已删除。使用 __version__
相反。
pil.*imageplugin.u版本属性
单个插件的版本常量已被删除。使用 PIL.__version__
相反。
远离的 |
远离的 |
远离的 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pyqt4和Pyside
qt 4在2015-12-19达到了寿命终止。它的python绑定也是eol:pyqt4(自2018-08-31)和pyside(自2015-10-14)。
PyQt4和PySide的支持已从 ImageQt
. 请升级到PyQt5或PySide2。
设置TIFF图像的大小
直接设置TIFF图像的大小(例如。 im.size = (256, 256)
)抛出错误。使用 Image.resize
相反。
默认重采样过滤器
默认重采样滤波器已更改为高质量卷积 Image.BICUBIC
而不是 Image.NEAREST
,对于 resize()
方法与 pad()
, scale()
和 fit()
功能。 Image.NEAREST
仍然始终用于“P”和“1”模式下的图像。见 过滤器 去了解差异。简而言之, Image.NEAREST
是一个非常快的过滤器,但简单和低质量。
Image.draft()返回值
如果 draft()
方法无效,它返回 None
. 如果它确实有效果,那么它以前返回图像本身。然而,不同于其他 chain methods , draft()
不返回图像的已修改版本,但会就地修改。所以,如果 draft()
有一个效果,枕头现在将返回一个图像模式和一个坐标框的元组。框是结果图像边界中的原始坐标。这在随后的 resize()
打电话。
API添加
自定义未识别图像错误
枕头现在有一个习惯 UnidentifiedImageError
当无法识别图像时。为了向后兼容,这将继承自 OSError
.
新论点 reducing_gap
对于Image.resize()和Image.thumbnail()方法
通过分两步调整图像大小来加快调整大小的速度。更大的 reducing_gap
,结果越接近公平再采样。较小的 reducing_gap
,调整大小的速度越快。与 reducing_gap
大于或等于3.0时,结果与公平重采样不可区分。
的默认值 resize()
是 None
,这意味着默认情况下禁用优化。
的默认值 thumbnail()
是2.0,这是非常接近公平的再采样,但在许多情况下仍然更快。此外,当 thumbnail()
电话 draft()
,这可能会大大提高JPEG缩略图的质量。因此, thumbnail()
在新版本中提供了同样的高速和高质量的任何来源(JPEG或任意图像)。
新的Image.reduce()方法
reduce()
是将图像减少整数倍的高效操作。一般情况下,不应该直接使用。内部使用人 resize()
和 thumbnail()
方法在新参数 reducing_gap
被设置。
在给定DPI加载WMF图像
在Windows上,枕头可以读取WMF文件,默认DPI为72。现在还可以以其他分辨率加载图像:
from PIL import Image
with Image.open("drawing.wmf") as im:
im.load(dpi=144)
其他变化
Image.__del__
在中隐式关闭图像的基础文件 Image.__del__
已删除。使用上下文管理器或调用 close()
而是以确定的方式关闭文件。
以前的方法:
im = Image.open("hopper.png")
im.save("out.jpg")
改为使用:
with Image.open("hopper.png") as im:
im.save("out.jpg")
更好的缩略图几何结构
在计算新尺寸时 thumbnail()
,舍入到最接近的整数,而不是始终舍入。这样可以更好地保留原始纵横比。
当图像的宽度或高度不能被8整除时,图像中的最后一行和最后一列在JPEG-DCT缩放后获得正确的权重。
讨论区