8.1.0#

废弃#

FreeType 2.7#

对FreeType 2.7的支持已弃用,将在Pillow 9.0.0(2022-01-02)中删除,而FreeType 2.8将是最低支持。

我们建议至少升级到FreeType 2.10.4 ,修复了在FreeType 2.6中引入的一个严重漏洞 (CVE-2020-15999 )。

生成文件#

这个 install-venv 目标已弃用。

API添加#

将图像附加到ICO#

保存ICO图像时,该文件可能包含不同大小的图像版本。默认情况下,Pillow将缩小主图像以创建这些副本。

在此版本中,可以将图像列表提供给 append_images 参数,以替换缩小的版本。这与ICNS格式已有的功能相同。

安全性#

此版本包含安全修复。

  • 通过LibTIFF使用自定义元数据保存TIFF时的越界读取

  • 保存1px宽度的GIF时发生越界读取

  • CVE-2020-35653 PCX解码中的缓冲区读取溢出

PCX图像解码器使用报告的图像步长来计算行缓冲区,而不是根据图像大小来计算它。这个问题可以追溯到PIL叉子。多亏了谷歌的 OSS-Fuzz 寻找这个的项目。

越界写入 TiffDecode.c 在某些LibTIFF版本(4.1.0/Ubuntu 20.04,但不是4.0.9/Ubuntu 18.04)中读取损坏的YCbCr文件时。在某些情况下,当以RGBA模式读取时,LibTIFF对文件的解释会有所不同,从而导致越界写入 TiffDecode.c 。这可能会影响从6.0.0到8.0.1的枕头版本,具体取决于LibTIFF的版本。这是通过以下途径报道的 Tidelift

中的4字节读取溢出 SgiRleDecode.c 代码没有正确检查偏移量和长度表。通过以下方式独立报告 Tidelift 还有谷歌的 OSS-Fuzz 。此漏洞涵盖Pillow版本4.3.0->8.0.1。

依赖项#

MacOS和Linux轮子中的OpenJPEG已从2.3.1更新到2.4.0,包括安全修复。

MacOS和Linux轮子中的LibTIFF已从4.1.0更新到4.2.0,包括Fuzzer发现的安全修复。

其他变化#

生成文件#

这个 co 目标已被移除。

PyPy车轮#

为PyPy 3.7添加了控制盘。

PySide6#

添加了对PySide6的支持。如果安装了它,将使用它而不是PyQt5或PySide2,因为它基于较新的Qt。