4.3.0#

API更改#

废弃#

ImageOps中的几个未记录函数已被弃用: gaussian_blurgblurunsharp_maskusmbox_blur . 使用中的等效操作 ImageFilter 相反。这些功能将在将来的版本中被删除。

TIFF元数据更改#

  • 类型/数量未知的TIFF标记现在默认为空值(如果它们是1个元素),以前它们是一个元素元组。这只适用于新的API,而不是旧的API。这将规范对字段的处理,以便处理具有推断计数或图像指定计数的元数据与TIFF规范中指定计数的元数据相同。

  • 这个 PhotoshopInfoXMPJPEGTables 标记现在具有定义的类型(字节)和计数1。

  • 这个 ImageJMetaDataByteCounts 标记现在有任意数量的项,因为可以有多个项,一个用于UTF-8,一个用于UTF-16。

核心图像API更改#

这些是用户代码不应该使用的内部函数,但可以从Python层访问它们。

调试代码 Image.core.grabclipboard 被移除。它被标记为 will be removed in future versions 自PIL以来。启用后,它标识剪贴板数据的格式。

这个 PIL.Image.core.copyPIL.Image.Image.im.copy2 方法已被删除。

这个 PIL.Image.core.getcount 方法已被移除,使用 PIL.Image.core.get_stats()['new_count'] 改为属性。

API添加#

从图像中获取一个频道#

一种新方法 PIL.Image.Image.getchannel() 已添加以按索引或名称返回单个通道。例如, image.getchannel("A") 将返回alpha通道作为单独的图像。 getchannel 工作速度应该比 image.split()[0] 以前的 Pillow 版本。

方形模糊#

一种新的滤波器, PIL.ImageFilter.BoxBlur ,已添加。这是一个类似于高斯模糊的滤镜,但速度要快得多。

部分重采样#

添加了新参数 box 对于 PIL.Image.Image.resize() . 此参数定义要调整大小的源图像中的源矩形。这和 image.crop(box).resize(size) 除此之外的顺序 box 可指定亚像素精度。

新转置操作#

这个 Image.TRANSVERSE 操作已添加到 PIL.Image.Image.transpose() . 这相当于对对角的转置操作。

多波段滤波器#

有一种新的 PIL.ImageFilter.MultibandFilter 一个操作中可以在图像的所有通道上运行的图像筛选器的基类。原文 PIL.ImageFilter.Filter 类保留用于只能处理单波段图像的图像筛选器,或者在筛选之前需要拆分通道。

其他变化#

加载16位TIFF图像#

Pillow现在可以读取16位多通道TIFF文件,包括阿尔法透明文件。图像数据被截断为8位精度。

Pillow现在可以读取16位有符号整数单通道TIFF文件。图像数据被提升到32位进行存储和处理。

SGI图像#

Pillow现在可以读写未压缩的16位多通道SGI图像的RGB和RGBA格式。图像数据被截断为8位精度。

Pillow现在可以读取8位和16位精度RLE编码的SGI图像。

性能#

此版本包含几个性能改进:

  • 许多内存带宽限制的操作,如裁剪、图像分配、转换、拆分为带以及从带合并速度都快了2倍。

  • 多通道图像(如RGB)的升迁速度加快了5-10%。

  • 使用最新版本的libjpeg-turbo时,jpeg加载速度加快了15%,jpeg保存速度加快了20%。

  • Image.transpose 已使用缓存友好算法加速15%或更多。

  • 基于核卷积的图像过滤器由于新的 MultibandFilter 特征。

  • 图像的所有内存分配现在都是以块的形式进行的,而不是对大于块大小的图像的每个扫描行回滚到一个分配。

CMYK转换#

基本的cmyk->rgb转换已经进行了调整,以匹配google chrome的公式。这将生成一个通常比前一个公式更轻的图像,并且更符合颜色管理应用程序生成的图像。