6.1.0#

废弃#

Image.__del__#

自 6.1.0 版本弃用.

在中隐式关闭图像的基础文件 Image.__del__ 已弃用。使用上下文管理器或调用 Image.close() 而是以确定的方式关闭文件。

已弃用::

im = Image.open("hopper.png")
im.save("out.jpg")

改用::

with Image.open("hopper.png") as im:
    im.save("out.jpg")

API添加#

Image.entropy#

计算并返回图像的熵。该方法将二级图像(模式“1”)作为灰度(“L”)图像处理。如果提供了一个遮罩,该方法对遮罩图像非零的图像部分采用直方图。遮罩图像必须与图像具有相同的大小,并且是双层图像(模式“1”)或灰度图像(“L”)。

ImageGrab.grab#

可选的 include_layered_windows 参数已添加到 ImageGrab.grab ,默认为 False .如果为true,则在Windows上生成的图像中将包含分层窗口。

ImageSequence.all_frames#

一种新的方法,便于将给定的函数应用于图像中的所有帧或图像列表中的所有帧。帧作为单独图像的列表返回。例如, ImageSequence.all_frames(im, lambda im_frame: im_frame.rotate(90)) 可用于返回图像中的所有帧,每个帧旋转90度。

变体字体#

现在支持变体字体,允许来自同一字体文件的不同样式。 ImageFont.FreeTypeFont 有四种新方法, PIL.ImageFont.FreeTypeFont.get_variation_names()PIL.ImageFont.FreeTypeFont.set_variation_by_name() 用于使用命名样式,以及 PIL.ImageFont.FreeTypeFont.get_variation_axes()PIL.ImageFont.FreeTypeFont.set_variation_by_axes() 用于使用字体轴。一个 IOError 如果字体不是变体字体,则将引发。FreeType 2.9.1或更高版本是必需的。

其他变化#

ImageTk.getimage#

现在支持此函数。它返回 ImageTk.PhotoImage 作为RGBA Image.Image 实例。

jpeg压缩tiff的图像质量#

TIFF编码器接受 quality 的参数 jpeg 压缩的TIFF文件。介于0(最差)到100(最佳)之间的值控制图像质量,类似于JPEG编码器。默认值为75。例如::

im.save("out.tif", compression="jpeg", quality=85)

改进TIFF标签的编码#

TIFF编码器支持更多类型,尤其是数组。这对于编码地理空间信息的geotiff格式是必需的。

  • 通过 tagtype 从v2目录到libtiff编码器,而不是自动检测类型。

  • 使用显式类型,例如。 uint32_t 对于 TIFF_LONG 解决64位长的平台上的问题。

  • 添加对多个值(数组)的支持。要求在v2目录中输入类型,并且值必须作为元组传递。

  • 添加对签名类型的支持,例如。 TIFFTypes.TIFF_SIGNED_SHORT .

构建时尊重pkg_config环境变量#

这个变量通常被其他构建系统使用,使用它可以帮助进行交叉编译。回到 pkg-config 像以前一样。

自上而下的复杂文本呈现#

以“ttb”方向绘制文本 ImageFont 已显著改善,要求RAQM 0.7或更高。