贬抑
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或更高。
讨论区