4.1.0节

已删除不推荐使用的项

已删除几个不推荐使用的项。

  • 已删除“x分辨率”、“y分辨率”、“分辨率单位”和“日期时间”参数中对tiff kwargs中空格的支持。应改为使用下划线。
  • 方法 PIL.ImageDraw.ImageDraw.setink()PIL.ImageDraw.ImageDraw.setfill()PIL.ImageDraw.ImageDraw.setfont() 已被删除。

打开图像时关闭文件

打开图像时的文件处理已大修。以前,在加载图像数据后,Pillow会尝试关闭一些但不是所有的图像格式。现在,指定了以下行为:

  • 对于传递打开文件的图像,调用代码负责关闭该文件。
  • 对于Pillow打开文件且已知文件只有一个帧的图像,文件在加载后关闭。
  • 如果文件有多个帧,或者无法确定,则文件将保持打开状态以允许查找后续帧。它最终将在 close__del__ 方法。
  • 如果图像是内存映射的,那么在完成图像处理之前,我们无法关闭到底层文件的映射。映射将在 close__del__ 方法。

保存时对GIF处理的更改

这个 PIL.GifImagePlugin 在保存图像时,代码已被重构以修复流。由此产生了两个外部变化:

这个重构修复了保存多个帧gif时调色板处理的一些错误。

新方法:image.remap_调色板

方法 PIL.Image.Image.remap_palette() 已添加。该方法是从用于优化调色板的gifimageplugin代码中提升出来的。

添加了解码器注册表并支持基于python的解码器

现在有一个解码器注册表类似于图像插件注册表。图像插件可以注册一个解码器,并在请求解码时调用它。这允许创建纯Python解码器。虽然Python解码器的速度不如基于C的解码器快,但它们可能更容易、更快地开发或更安全地运行。

测验

已经添加了许多测试,包括以前未测试过的图像格式的正确性测试。

我们现在在Docker容器中针对比Travis CI(目前为Ubuntu 14.04 x64)提供的Linux版本更多的版本运行自动化测试。这个Pillow释放测试64位阿尔卑斯,拱门,Ubuntu12.04和16.04,32位Debian伸展和Ubuntu14.04。这也涵盖了比本地Travis提供的更广泛的依赖性版本。