Python 图片处理,从 PIL 到 Pillow
PIL库(Python Imaging Library)是一个用于图像处理的Python库,它提供了许多功能强大的工具和算法,使开发者能够轻松地进行图像操作、处理和生成。PIL的发展历史可以追溯到20世纪90年代初,由Fredrik Lundh创建。然而,由于PIL的开发在2009年停止,Pillow库在此基础上诞生,由Alex Clark接手并继续发展,成为PIL的继任者,为Python社区提供了一个现代且活跃的图像处理解决方案。
-
PIL的起源与发展:
PIL最初是由Fredrik Lundh创建的,他是一位Python爱好者和开发者。PIL的目标是提供一个简单而强大的图像处理工具集,使得Python开发者能够在其应用程序中轻松地处理图像。PIL库最早的版本发布于1995年,这标志着Python社区在图像处理领域迈出了重要的一步。在PIL的初期版本中,一些基本的图像处理功能已经得到了支持,例如裁剪、缩放和旋转。 -
PIL到Pillow的演进:
随着时间的推移,PIL在图像处理领域的需求不断增加,但开发速度相对较慢,也缺乏对新技术的支持。在2009年,PIL的开发者宣布不再继续维护PIL库。然而,Python社区对图像处理的需求并没有减少,因此Alex Clark采取了行动,创建了Pillow库。Pillow基于PIL的源代码,添加了新的功能和修复了一些已知的问题。这使得Pillow成为PIL的现代替代品,为开发者提供了一个活跃且不断发展的图像处理库。 -
Pillow的特性与示例:
Pillow库具有丰富的功能,涵盖了从基本的图像处理到高级的图像算法。以下是一些Pillow的主要特性和相应的示例:-
基本图像操作:
-
打开和保存图像:
from PIL import Image img = Image.open("example.jpg") img.save("output.png")
-
调整图像大小:
resized_img = img.resize((width, height))
-
-
图像滤波:
- 应用模糊滤镜:
from PIL import ImageFilter blurred_img = img.filter(ImageFilter.BLUR)
- 应用模糊滤镜:
-
图像增强:
- 调整亮度和对比度:
from PIL import ImageEnhance enhancer = ImageEnhance.Brightness(img) bright_img = enhancer.enhance(1.5) # 增加亮度
- 调整亮度和对比度:
-
图像合成:
- 合并图像:
blended_img = Image.blend(img1, img2, alpha=0.5)
- 合并图像:
-
图像分析:
- 获取图像的直方图:
hist = img.histogram()
- 获取图像的直方图:
-
图像绘制:
- 在图像上绘制文本:
from PIL import ImageDraw, ImageFont draw = ImageDraw.Draw(img) font = ImageFont.load_default() draw.text((x, y), "Hello, Pillow!", font=font, fill=(255, 255, 255))
- 在图像上绘制文本:
总体而言,Pillow库不仅继承了PIL的传统,还引入了许多新的特性,使得Python开发者能够更轻松地处理图像,从而满足了不断增长的图像处理需求。Pillow库的活跃开发和广泛使用证明了它在Python图像处理领域的重要性。
-
- 点赞
- 收藏
- 关注作者
评论(0)