Python库 - PIL

PIL(Python Imaging Library) 是一个强大的图像处理库,为Python提供了图像处理的功能。PIL库后来被Pillow项目继承和扩展,Pillow是PIL的一个友好分支,提供了更多的功能和更好的兼容性。

安装PIL库

首先,需要安装Pillow库,因为PIL库已经不再维护。可以使用pip来安装Pillow:

bash 复制代码
pip install Pillow

基本图像操作

打开图像

可以使用Image.open()函数来打开一个图像文件:

python 复制代码
from PIL import Image

# 打开图像文件
image = Image.open('path_to_image.jpg')

# 显示图像
image.show()
保存图像

可以使用save()方法来保存图像:

python 复制代码
# 保存图像
image.save('new_image.png')
获取图像信息

可以获取图像的格式、大小和模式等信息:

python 复制代码
# 获取图像格式
print(image.format)  # 输出: JPEG

# 获取图像大小
print(image.size)   # 输出: (width, height)

# 获取图像模式
print(image.mode)   # 输出: RGB

图像处理

裁剪图像

可以使用crop()方法来裁剪图像:

python 复制代码
# 定义裁剪区域 (left, upper, right, lower)
box = (100, 100, 400, 400)
region = image.crop(box)
region.show()
调整图像大小

可以使用resize()方法来调整图像大小:

python 复制代码
# 调整图像大小
new_size = (600, 600)
resized_image = image.resize(new_size)
resized_image.show()
旋转图像

可以使用rotate()方法来旋转图像:

python 复制代码
# 旋转图像
rotated_image = image.rotate(45)
rotated_image.show()
图像滤镜

可以使用ImageFilter模块来应用各种滤镜:

python 复制代码
from PIL import ImageFilter

# 应用模糊滤镜
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.show()

图像合成

可以使用paste()方法来合成图像:

python 复制代码
# 打开另一张图像
logo = Image.open('path_to_logo.png')

# 合成图像
image.paste(logo, (100, 100))
image.show()

图像转换

可以使用convert()方法来转换图像模式:

python 复制代码
# 转换为灰度图像
gray_image = image.convert('L')
gray_image.show()

示例:创建缩略图

下面是一个创建缩略图的示例:

python 复制代码
# 创建缩略图
image.thumbnail((128, 128))
image.show()

相关推荐
Wang's Blog12 分钟前
Java 项目实战:交友项目 - 联系人管理需求分析
java·开发语言·交友
第404号工位15 分钟前
离职退电脑前别只点“清空回收站”!手把手教你彻底抹除凭证与数字痕迹
linux·python·架构
陈嘿萌20 分钟前
ACM MM 2026|告别密集交互!ProtoHGF-Net:基于原型超图的RGBT目标检测新范式
图像处理·人工智能·深度学习·目标检测·计算机视觉·学术研究与理论基础
Metaphor69229 分钟前
使用 Python 在 Word 文档中添加、修改和删除变量
python·word
終不似少年遊*42 分钟前
【AI Coding实战方法论】从计划协作到架构护栏,一套能长期复用的工程流程
人工智能·python·团队开发·ai编程·ai coding·skills·上下文管理
lusklusklusk42 分钟前
Python 全局变量与局部变量区别——global 关键字、__main__ 块与作用域示例
开发语言·前端·python
马剑威(威哥爱编程)1 小时前
Python 智能体开发实战 01:装了三遍环境还在报错?虚拟环境和 DeepSeek 一次配到位
开发语言·人工智能·python·agent
octopus_c1 小时前
C++ 入门
开发语言·c++·算法
卷无止境1 小时前
Skill 的安全边界在哪里:风险来源、验证思路与用户可用的防线
后端·python
TomEval1 小时前
【测AI】第22篇:Agent 系统测试方法 — AI 学会“动手“了
人工智能·python·prompt·aigc·测试用例