pin_drop当前位置:知识文库 ❯ 图文

Pillow库简介与安装教程 - Python图像处理入门

一、Pillow库概述

Pillow是Python中最流行的图像处理库,是PIL(Python Imaging Library)的友好分支和继任者。Pillow提供了丰富的图像处理功能,包括图像打开、保存、裁剪、缩放、旋转、滤镜、绘图、文字渲染等。

它支持多种图像格式(如JPEG、PNG、GIF、BMP、TIFF等),是Python图像处理领域的基础工具。无论是Web开发、数据科学还是自动化办公,Pillow都是不可或缺的核心依赖。

二、安装与导入方式

安装Pillow

代码示例

pip install Pillow

导入方式

代码示例

from PIL import Image

提示:Pillow是PIL的分支,导入时使用from PIL import Image而非import Pillow,这是初学者常犯的错误。

三、核心模块说明

模块 说明
Image 核心模块,提供图像打开、创建、保存等基本操作
ImageDraw 提供二维绘图功能,可在图像上绘制形状和文字
ImageFont 字体管理,用于指定绘图时的字体样式
ImageFilter 图像滤镜,提供模糊、锐化、边缘检测等效果
ImageEnhance 图像增强,调整亮度、对比度、色彩饱和度等
ImageColor 颜色处理,支持颜色名称与RGB值的转换
ImageOps 图像操作,提供自动对比度、翻转等便捷操作
ImageSequence 序列图像处理,主要用于GIF等多帧图像

四、代码示例演示

示例1:安装验证与版本查看

代码示例

from PIL import Image, __version__

print(f"Pillow版本: {__version__}")
print(f"支持的格式: {Image.registered_extensions()}")

输出:

代码示例

Pillow版本: 10.2.0
支持的格式: {'.bmp': 'BMP', '.dib': 'DIB', '.dcx': 'DCX', '.eps': 'EPS', '.ps': 'EPS', '.gif': 'GIF', '.im': 'IM', '.jpg': 'JPEG', '.jpe': 'JPEG', '.jpeg': 'JPEG', '.pcd': 'PCD', '.pcx': 'PCX', '.png': 'PNG', '.pbm': 'PPM', '.pgm': 'PPM', '.ppm': 'PPM', '.psd': 'PSD', '.tif': 'TIFF', '.tiff': 'TIFF', '.xbm': 'XBM', '.xpm': 'XPM'}

示例2:创建简单图像并保存

代码示例

from PIL import Image

# 创建一个200x100的红色图像
img = Image.new('RGB', (200, 100), color='red')
print(f"图像尺寸: {img.size}")
print(f"图像模式: {img.mode}")
print(f"图像格式: {img.format}")

img.save('red_image.png')
print("图像已保存为 red_image.png")

输出:

代码示例

图像尺寸: (200, 100)
图像模式: RGB
图像格式: None
图像已保存为 red_image.png

示例3:查看Pillow支持的图像操作

代码示例

from PIL import Image

# 查看Image对象的常用方法
methods = [m for m in dir(Image.new('RGB', (10, 10))) if not m.startswith('_')]
print("Image对象常用方法:")
for method in methods[:20]:
    print(f"  {method}")

输出:

代码示例

Image对象常用方法:
  convert
  copy
  crop
  draft
  filter
  frombytes
  getbands
  getbbox
  getchannel
  getcolors
  getdata
  getextrema
  getim
  getpalette
  getpixel
  getprojection
  histogram
  load
  offset
  paste

五、实际应用场景

  • Web开发:处理用户上传的头像,进行裁剪、缩放和格式转换。

  • 数据科学:批量处理图像数据集,统一尺寸和格式,为模型训练做准备。

  • 自动化办公:生成带水印的图片、制作缩略图或拼接图片,提高办公效率。

六、注意事项

  • 导入名称:Pillow是PIL的分支,导入时使用from PIL import Image而非import Pillow

  • 格式支持:Pillow对某些格式(如JPEG 2000、WebP)的支持需要额外的系统库。

  • 内存管理:处理大图像时注意内存占用,建议及时释放不再使用的Image对象。

七、Pillow与PIL对比

特性 Pillow PIL
维护状态 活跃维护 已停止维护
Python 3支持 支持 不支持
安装方式 pip install Pillow 需手动编译
新格式支持 WebP等 不支持
社区活跃度

八、小结与练习

通过本文的学习,我们了解了Pillow库的基础知识:

  • 标准库:Pillow是Python图像处理的标准库,功能丰富且持续维护。

  • 核心模块:核心模块是Image,配合ImageDraw、ImageFilter等模块可完成大部分图像处理任务。

  • 安装与导入:安装使用pip install Pillow,导入使用from PIL import Image


练习题

练习1:编写程序,创建一个400x300的蓝色图像,并保存为blue.png。

练习2:编写程序,创建一个RGB模式的图像,分别获取其R、G、B三个通道的信息并打印。


常见问题

Pillow和PIL是什么关系?

Pillow是PIL(Python Imaging Library)的友好分支和继任者。PIL已停止维护且不支持Python 3,而Pillow在PIL基础上持续发展,支持Python 3并新增了WebP等格式,是目前推荐使用的选择。

为什么导入时写from PIL而不是from Pillow?

因为Pillow保持了与PIL兼容的包名PIL作为导入名称,这样做是为了让Pillow可以作为PIL的直接替代品,无需修改已有的PIL代码。安装用pip install Pillow,导入用from PIL import Image。

Pillow支持哪些图像格式?

Pillow支持多种常见格式,包括JPEG、PNG、GIF、BMP、TIFF、WebP、EPS、PCD、PSD、PPM等。其中部分格式(如JPEG 2000、WebP)需要额外的系统库支持。可通过Image.registered_extensions()查看当前环境支持的所有格式。

处理大图像时内存不足怎么办?

建议及时释放不再使用的Image对象(设为None或使用del),使用img.close()关闭文件句柄,或者分块处理大图像。对于特别大的图像,可以考虑使用imageio或opencv等替代方案。

标签: Pillow Python图像处理 PIL 图像库安装 Python教程

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: openpyxl数据验证详解 - 下拉列表输入限制与自定义公式教程 下一篇: Pillow Image.open()与save()教程 - 图像打开保存详解

poll相关推荐