7.0.0#
向后不兼容的更改#
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上,Pillow可以读取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缩放后获得正确的权重。