理智插件
SANE插件现在被拆分为自己的repo:https://github.com/python-bellow/sane。
PNG文本块大小限制
为了防止使用压缩文本块的潜在拒绝服务攻击,现在对从PNG图像解码的文本块的解压缩大小有限制。如果在打开PNG图像时超出限制 ValueError
都会被举起。
单个文本块仅限于 PIL.PngImagePlugin.MAX_TEXT_CHUNK
,默认设置为1MB。所有文本块的总解压缩大小限制为 PIL.PngImagePlugin.MAX_TEXT_MEMORY
,默认为64MB。如果知道需要大的文本块,可以在打开PNG图像之前更改这些值。
图像大小调整过滤器
图像大小调整方法 resize()
和 thumbnail()
拿一个 resample
参数,指示应使用哪个筛选器重新采样。可能的值是: PIL.Image.NEAREST
, PIL.Image.BILINEAR
, PIL.Image.BICUBIC
和 PIL.Image.ANTIALIAS
.在这个版本中,几乎所有的内容都被更改了。
双三次和双线性降尺度
从一开始 BILINEAR
和 BICUBIC
过滤器基于仿射变换,并使用源图像中每个目标像素的固定像素数(2x2像素用于 BILINEAR
和4x4 BICUBIC
)。这对于缩小尺寸给出了不令人满意的结果。同时,提出了一种基于柔性核的高质量卷积算法。 ANTIALIAS
过滤器。
从Pillow2.7.0开始,所有这三个过滤器都使用了基于高质量卷积的算法。
如果您以前使用过任何技巧来保持质量, BILINEAR
和 BICUBIC
过滤器(例如,在几个步骤内减少),它们现在是不必要的。
Antialias更名为Lanczos
一个新的 PIL.Image.LANCZOS
添加常量而不是 ANTIALIAS
.
什么时候? ANTIALIAS
最初添加,它是唯一基于卷积的高质量滤波器。它的名字应该能反映这一点。从枕头2.7.0开始,所有调整大小的方法都基于卷积。从现在起它们都是抗利尿药。以及 ANTIALIAS
过滤器为Lanczos过滤器。
兰佐斯升级质量
双三次放大质量
这个 BICUBIC
用于仿射变换的过滤器生成了清晰的、稍微像素化的图像,以便进行升迁。双三次卷积更柔软。
调整性能大小
在大多数情况下,卷积算法是一种更昂贵的缩小尺度的算法,因为它考虑了源图像的所有像素。因此 BILINEAR
和 BICUBIC
过滤器的性能可能低于以前。另一方面,质量 BILINEAR
和 BICUBIC
接近 NEAREST
. 因此,如果这种质量适合您的任务,您可以切换到 NEAREST
用于缩小尺寸的过滤器,这将大大提高性能。
同时,卷积重采样的降尺度性能比以前的版本提高了大约2倍。的升级性能 LANCZOS
过滤器保持不变。为了 BILINEAR
过滤性能提高1.5倍 BICUBIC
四倍。
缩略图的默认筛选器
枕头2.5中的默认过滤器 thumbnail()
已从更改 NEAREST
到 ANTIALIAS
. 选择抗锯齿是因为所有其他过滤器的还原质量较差。从枕头2.7.0开始, ANTIALIAS
已被替换为 BICUBIC
因为它更快而且 ANTIALIAS
使用libjpeg缩小后没有任何优势,它在内部使用过采样,而不是卷积。
图像转置
一种新方法 PIL.Image.TRANSPOSE
已为添加 transpose()
除此之外的操作 FLIP_LEFT_RIGHT
, FLIP_TOP_BOTTOM
, ROTATE_90
, ROTATE_180
, ROTATE_270
. TRANSPOSE
是一个代数转置,图像在其主对角线上反射。
速度 ROTATE_90
, ROTATE_270
和 TRANSPOSE
对于不适合处理器缓存的大型图像,已进行了显著改进。
高斯模糊和不锐化掩模
这个 GaussianBlur()
实现已被一个连续应用的框式过滤器所取代。新的实现是基于“扩展盒滤波高斯卷积的理论基础”从数学图像分析组。AS UnsharpMask()
实现在内部使用高斯模糊,本章的所有更改也适用于它。
模糊半径
在之前版本的Pillow中有一个错误,模糊半径(高斯的标准偏差)实际上意味着模糊直径。例如,要使实际半径为5的图像模糊,必须使用值10。这个问题已经解决了。现在半径的含义与其他软件中的含义相同。
如果使用了半径值为的高斯模糊,则需要将该值除以2。
模糊性能
盒滤波器的计算时间相对于半径是恒定的,仅取决于源图像的大小。由于新的高斯模糊实现是基于盒滤波器的,其计算时间也不依赖于模糊半径。
例如,以前,如果给定测试图像的执行时间为1秒(半径为1),3.6秒(半径为10),17秒(半径为50),则现在对同一图像上的任何半径执行模糊0.2秒。
模糊质量
以前的实现只考虑每个目标像素在2*标准偏差半径内的源像素。这是不够的,所以质量比其他高斯模糊软件更差。
新的实现没有这个缺点。
TIFF参数更改
用于保存TIFF图像的几个Kwarg参数以前被指定为包含空格的字符串(例如“x分辨率”)。如果不建立和通过字典,很难将其用作夸克语。这些参数现在使用下划线字符而不是空格。(例如,“X”分辨率)
讨论区