API更改
允许保存零质量JPEG图像
如果保存JPEG时未指定质量,则Pillow在内部使用值0表示应使用默认质量。但是,这实际上消除了以零质量保存JPEG的能力。现在已经解决了。
from PIL import Image
im = Image.open("hopper.jpg")
im.save("out.jpg", quality=0)
API添加
新渠道运营
增加了三个新的频道操作: soft_light()
, hard_light()
和 overlay()
.
Pillow版本常数
PILLOW_VERSION
已重新添加,但已弃用,将在将来的版本中删除。使用 __version__
相反。
7.0.0版本的Pillow在最初的时候被升级到了7.0.0,但后来又被升级到了7.0。
正在读取JPEG注释
打开JPEG图像时,现在可以将注释读入 info
.
支持PcfFontFile中的不同字符集编码
以前 PcfFontFile
使用ISO 8859-1编码仅输出位图PIL字体,即使PCF格式支持Unicode,因此很难在使用不同字符集的语言中使用Pillow位图字体。
现在可以在中设置不同的字符集编码 PcfFontFile
的类构造函数。默认情况下,它会像以前一样生成一个带有iso8859-1的PIL字体文件。生成的PIL字体文件最多仍包含256个字符,但字符集因所选编码而异。
使用这种字体 ImageDraw.text
,使用与字体文件编码相同的bytes对象调用它。
X11个图像抓取()
已为添加支持 ImageGrab.grab()
在Linux上使用带有XCB库的X服务器。
可选的 xdisplay
已添加参数以选择X服务器,默认值为 None
使用默认的X服务器。
在Windows或macOS上传递不同的值将强制使用选定的X服务器拍摄快照;传递一个空字符串以使用默认的X服务器。XCB支持不包括在Windows和macOS的预编译控制盘中。
安全性
此版本包含安全修复。
-
CVE-2020-10177 修复FLI解码中的多个越界读取
-
CVE-2020-10378 PCX解码中的固定边界溢出
-
CVE-2020-10379 修复TIFF解码中的两个缓冲区溢出
-
CVE-2020-10994 JPEG 2000解码中的固定边界溢出
-
CVE-2020-11538 修复SGI-RLE解码中的缓冲区溢出
其他变化
如果存在,则仅将alpha通道用于边界框
当 getbbox()
方法计算边界框,对于RGB图像,它将修剪黑色像素。类似地,对于RGBA图像,它将修剪黑色透明像素。这一点现在改变了,如果图像有一个alpha通道(RGBA,RGBA,PA,LA,LA),所有透明像素都会被修剪。
改进的APNG支持
增加了对读写动画便携式网络图形(APNG)图像的支持。PNG插件现在支持使用 seek()
方法与 Iterator
类来读取APNG帧序列。PNG插件现在也支持使用 append_images
参数来写入APNG帧序列。看到了吗 APNG序列 更多详情。
讨论区