Pillow 安装使用教程

一、Pillow 简介

Pillow 是 Python 图像处理库 PIL(Python Imaging Library)的友好分支,是图像处理的事实标准。它支持打开、编辑、转换、保存多种图像格式,常用于图像批量处理、验证码识别、缩略图生成等应用场景。


二、安装 Pillow

2.1 使用 pip 安装(推荐)

bash 复制代码
pip install Pillow

2.2 验证安装

python 复制代码
import PIL
print(PIL.__version__)

若无报错且输出版本号,则说明安装成功。


三、基本使用示例

3.1 打开图像

python 复制代码
from PIL import Image

img = Image.open("example.jpg")
img.show()

3.2 图像信息

python 复制代码
print(img.format)      # 图像格式(JPEG、PNG 等)
print(img.size)        # 图像尺寸
print(img.mode)        # 颜色模式(RGB、L 等)

3.3 图像保存

python 复制代码
img.save("output.png")

四、常见图像操作

4.1 缩放与裁剪

python 复制代码
resized = img.resize((200, 200))
cropped = img.crop((100, 100, 300, 300))  # 左、上、右、下

4.2 旋转与翻转

python 复制代码
rotated = img.rotate(45)           # 顺时针旋转 45°
flipped = img.transpose(Image.FLIP_LEFT_RIGHT)  # 左右翻转

4.3 转换颜色模式

python 复制代码
gray = img.convert("L")    # 转为灰度图
rgba = img.convert("RGBA") # 转为带透明通道的图像

五、绘图与文字处理

python 复制代码
from PIL import ImageDraw, ImageFont

draw = ImageDraw.Draw(img)
draw.rectangle((50, 50, 150, 150), outline="red")
draw.text((60, 60), "Hello", fill="blue")

使用自定义字体:

python 复制代码
font = ImageFont.truetype("arial.ttf", 24)
draw.text((10, 10), "你好", font=font, fill="black")

六、图像滤镜与增强

python 复制代码
from PIL import ImageFilter

blurred = img.filter(ImageFilter.BLUR)
contour = img.filter(ImageFilter.CONTOUR)

七、批量图像处理

python 复制代码
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.ttfmsyh.ttf,并加载为 ImageFont.truetype()


九、学习资源推荐


本文由"小奇Java面试"原创发布,转载请注明出处。

可以搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

相关推荐
噜~噜~噜~1 天前
最大熵原理(Principle of Maximum Entropy,MaxEnt)的个人理解
深度学习·最大熵原理
小女孩真可爱1 天前
大模型学习记录(五)-------调用大模型API接口
pytorch·深度学习·学习
水月wwww1 天前
深度学习——神经网络
人工智能·深度学习·神经网络
青瓷程序设计1 天前
花朵识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
青瓷程序设计1 天前
鱼类识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
WWZZ20251 天前
快速上手大模型:深度学习13(文本预处理、语言模型、RNN、GRU、LSTM、seq2seq)
人工智能·深度学习·算法·语言模型·自然语言处理·大模型·具身智能
枯木逢秋࿐1 天前
深度学习常用模型
深度学习
宝桥南山1 天前
.NET 10 - Blazor web assembly应用的一些诊断方式
microsoft·微软·c#·asp.net·.net·.netcore
百***06011 天前
【Golang】——Gin 框架中的表单处理与数据绑定
microsoft·golang·gin
哥布林学者1 天前
吴恩达深度学习课程三: 结构化机器学习项目 第一周:机器学习策略(一)正交化调优和评估指标
深度学习·ai