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()

相关推荐
张张123y2 小时前
后端第十四课:Agent 记忆系统(让 Agent 记住上下文和用户,跨会话不健忘)
java·大数据·人工智能·python·agent·记忆
阿里嘎多学长6 小时前
2026-10-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
happylifetree7 小时前
Python67:核心语法-函数进阶-参数类型(函数作为参数)
python
布吉岛的石头7 小时前
Java 程序员第 50 阶段2:预训练的目标函数:自回归语言建模本质
java·开发语言·人工智能·深度学习·回归·transformer
小羊没烦恼!7 小时前
铁道部新客票系统设计(二)
开发语言·前端·数据库·python·oracle·c#·php
quantdash_cc8 小时前
从实时行情到价格观察表:用 Python 和 Pandas 构建策略输入数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
镜子AI8 小时前
镜子AI工程实践:用 Python 做 GEO 实体一致性审计,并自动生成 JSON-LD 结构化数据
人工智能·python·json
昂好的day9 小时前
VisionMaster 通信模块实战(上):Modbus、TCP 收发、协议组装解析
开发语言·网络·网络协议·tcp/ip·c#
努力实干9 小时前
面向对象设计原则——C++
开发语言·c++·数码相机
指针向南10 小时前
PDF转长图用什么?3种方法实测(2026)
图像处理·人工智能·计算机视觉·pdf