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,这是初学者常犯的错误。
三、核心模块说明
四、代码示例演示
示例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库的基础知识:
-
标准库: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等替代方案。
本文涉及AI创作
内容由AI创作,请仔细甄别