一、Pillow 简介
Pillow 是 Python 图像处理库 PIL(Python Imaging Library)的友好分支,是图像处理的事实标准。它支持打开、编辑、转换、保存多种图像格式,常用于图像批量处理、验证码识别、缩略图生成等应用场景。
二、安装 Pillow
2.1 使用 pip 安装(推荐)
pip install Pillow
2.2 验证安装
import PIL
print(PIL.__version__)
若无报错且输出版本号,则说明安装成功。
三、基本使用示例
3.1 打开图像
from PIL import Image
img = Image.open("example.jpg")
img.show()
3.2 图像信息
print(img.format) # 图像格式(JPEG、PNG 等)
print(img.size) # 图像尺寸
print(img.mode) # 颜色模式(RGB、L 等)
3.3 图像保存
img.save("output.png")
四、常见图像操作
4.1 缩放与裁剪
resized = img.resize((200, 200))
cropped = img.crop((100, 100, 300, 300)) # 左、上、右、下
4.2 旋转与翻转
rotated = img.rotate(45) # 顺时针旋转 45°
flipped = img.transpose(Image.FLIP_LEFT_RIGHT) # 左右翻转
4.3 转换颜色模式
gray = img.convert("L") # 转为灰度图
rgba = img.convert("RGBA") # 转为带透明通道的图像
五、绘图与文字处理
from PIL import ImageDraw, ImageFont
draw = ImageDraw.Draw(img)
draw.rectangle((50, 50, 150, 150), outline="red")
draw.text((60, 60), "Hello", fill="blue")
使用自定义字体:
font = ImageFont.truetype("arial.ttf", 24)
draw.text((10, 10), "你好", font=font, fill="black")
六、图像滤镜与增强
from PIL import ImageFilter
blurred = img.filter(ImageFilter.BLUR)
contour = img.filter(ImageFilter.CONTOUR)
七、批量图像处理
import os
for filename in os.listdir("images"):
if filename.endswith(".jpg"):
img = Image.open(f"images/{filename}")
img.thumbnail((300, 300))
img.save(f"thumbnails/{filename}")
八、常见问题
Q1: 报错 OSError: cannot open resource
?
字体文件路径不正确,使用绝对路径或将字体文件放入项目目录中。
Q2: 中文无法显示?
需要使用支持中文的字体,如 simhei.ttf
或 msyh.ttf
,并加载为 ImageFont.truetype()
。
九、学习资源推荐
本文由“小奇Java面试”原创发布,转载请注明出处。
可以搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。