Python 图像处理入门:用 Pillow 快速上手
1. Pillow 简介
日常开发里,无论是生成网站缩略图、制作随机验证码,还是批量裁剪图片尺寸,都不必求助复杂的 Photoshop 脚本或第三方 API——Python 的 Pillow 库就能轻松搞定。
Pillow 是老牌 Python Imaging Library(PIL)的现代化分支:它在保留 PIL 简洁 API 的同时,完全兼容 Python 3,并额外加入了新格式支持、性能优化等特性,是目前 Python 生态中最流行的轻量级图像处理工具。
核心亮点
- 支持超过 40 种图像格式(JPEG、PNG、BMP、GIF、TIFF、WebP 等)
- 覆盖从基础到进阶的常见图像处理需求
- 代码逻辑清晰,新手友好
- 社区活跃,版本迭代稳定
2. 快速安装
标准 pip 安装
Anaconda / Miniconda 环境
在 Linux / macOS 上使用普通用户安装时,建议添加
--user参数,避免修改系统环境:
3. 基础图像操作
3.1 打开、查看与保存
这是 Pillow 最核心的第一步,代码几乎和“打开记事本”一样直观:
3.2 调整大小
Pillow 提供了两种常用方式:
thumbnail():按比例缩小,原地修改图像,保证图像不会超出指定尺寸。resize():强制拉伸或缩放,返回新图像,尺寸完全可控。
💡 注意:
thumbnail()会直接修改原图像,而resize()返回全新图像。如果后续还需要使用原始尺寸,请先做好复制。
3.3 旋转与翻转
旋转和翻转都是返回新图像的非原地操作:
4. 一键套用内置滤镜
Pillow 内置了十几种常用滤镜,无需手写复杂的图像处理算法:
5. 简单图像绘制
结合 ImageDraw 和 ImageFont,你可以轻松生成验证码、文字水印、简易图表等。
5.1 基础图形绘制
5.2 实用小工具:生成 4 位验证码
很多网站的验证码逻辑都可以用这个简化版实现:
6. 进阶小功能
6.1 带透明度的图像合成
将带有透明通道的 PNG 水印叠加到照片上,常用于批量添加品牌标识:
7. 常见问题速查
-
系统字体加载失败
将字体路径替换为对应系统的真实绝对路径,或直接使用ImageFont.load_default()加载默认位图字体。 -
RGBA 图片直接保存为 JPEG 报错
JPEG 格式不支持透明度,需要先转换为 RGB 模式: -
处理大图时内存溢出
优先使用thumbnail()按比例缩小图片,避免对超大尺寸图像直接调用resize()。
8. 学习资源
- 📖 官方文档:https://pillow.readthedocs.io/
- 📂 官方示例库:https://github.com/python-pillow/Pillow/tree/main/Examples
通过本教程,你已经掌握了 Pillow 80% 的核心使用场景,剩下的细节可以根据官方文档按需探索!

