PIL 是Pillow吗?

概述

PIL 是Pillow吗?

对于 Python 图像处理社区来说,PIL(Python Imaging Library)和 Pillow 是两个至关重要的库。然而,这两个库之间存在一些混淆和问题。本文旨在澄清 PIL 和 Pillow 之间的关系,并讨论它们的特性、差异和演变。

PIL

PIL 是 1995 年首次发布的原始 Python 图像处理库。它为 Python 提供了许多图像处理功能,包括图像打开、加载、保存、编辑、转换、绘制和显示。PIL 已广泛用于 Python 图像处理应用程序中,至今仍受到广泛使用。

Pillow 是 PIL 的分支吗?

。Pillow 是 PIL 的一个分支,于 2010 年首次发布。它旨在解决 PIL 中存在的几个问题,包括:

  • 与较新 Python 版本的不兼容性:PIL 尚未与 Python 3 完全兼容。
  • 缺乏维护:PIL 的原始维护者不再提供积极支持。
  • 低速性能:PIL 在某些操作上的性能较低。

Pillow 通过更新代码库、改进性能并添加对 Python 3 的支持来解决了这些问题。Pillow 现在被认为是 PIL 的事实上的继任者,并且比 PIL 更加广泛地使用。

PIL 和 Pillow 的差异

虽然 Pillow 是 PIL 的分支,但两个库之间仍有一些差异:

  • 许可:Pillow 在 GNU 通用公共许可证版本 3(GPLv3)下获得许可,而 PIL 在 PIL 特殊许可证下获得许可,该许可证与 GPLv3 不兼容。这意味着如果您使用 Pillow,您的应用程序也必须遵守 GPLv3。
  • 依赖关系:Pillow 比 PIL 具有更多的依赖关系。它需要 libtiff、libjpeg 和 zlib,而 PIL 只需要 zlib。
  • 名称冲突:在 Python 中导入 Pillow 时,它使用 PIL 别名。这可能会与您已安装的原始 PIL 发生名称冲突。为了解决这个问题,建议使用 from PIL import Image, ImageFilter 等明确导入来避免冲突。

PIL 和 Pillow 的演变

PIL 的开发已基本停止,而 Pillow 则继续更新和维护。Pillow 的最新版本是 9.4.1,于 2023 年 4 月 5 日发布。Pillow 的积极开发确保了它的最新版本并不断添加新功能和错误修复。

选择 PIL 还是 Pillow

如果您要从事新的 Python 图像处理项目,强烈建议使用 Pillow。它比 PIL 更加广泛地使用、维护得更好,并且性能优于 PIL。但是,如果您有现有依赖 PIL 的应用程序,则可以在权衡许可和依赖冲突的风险后决定是否升级到 Pillow。

常见问题解答

1. PIL 和 Pillow 是同一个库吗?

  • 是和否。技术上,Pillow 是 PIL 的一个分支,但是,Pillow 已经演变成为一个不同的库,具有不同的许可证和特性。

2. 我应该使用 PIL 还是 Pillow?

  • 对于新项目,建议使用 Pillow。对于现有依赖 PIL 的应用程序,您可以选择升级到 Pillow 或在权衡风险后保留 PIL。

3. 为什么 Pillow 在导入时使用 PIL 别名?

  • 这是一种方便用户的方式,允许他们使用与 PIL 相同的语法来导入 Pillow。

4. 如何避免 PIL 和 Pillow 的名称冲突?

  • 使用明确导入,例如 from PIL import Image, ImageFilter

5. Pillow 需要哪些依赖项?

  • Pillow 需要 libtiff、libjpeg 和 zlib。

原创文章,作者:魏景忆,如若转载,请注明出处:https://www.wanglitou.cn/article_79675.html

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2024-06-20 12:03
下一篇 2024-06-20 12:05

相关推荐

公众号