Pillow操控图像,Python必备神器全面解析!

更多学习内容:ipengtao.com

Pillow 是一个强大的 Python 图像处理库,它提供了丰富的功能,能够处理图像的加载、编辑、处理和保存。这个库建立在 Python Imaging Library (PIL) 的基础上,并延续了 PIL 的开发,提供了更多的功能和支持。

1. 导入Pillow库并加载图像

Pillow 是一个功能强大的图像处理库,在使用前需要确保已经安装。

python 复制代码
from PIL import Image

# 加载图像
img = Image.open('example.jpg')
img.show()

2. 图像基本操作

修改图像尺寸

python 复制代码
resized_img = img.resize((300, 200))
resized_img.show()

旋转和翻转图像

python 复制代码
rotated_img = img.rotate(90)
rotated_img.show()

flipped_img = img.transpose(Image.FLIP_LEFT_RIGHT)
flipped_img.show()

3. 图像滤镜和效果

应用滤镜

python 复制代码
from PIL import ImageFilter

blurred_img = img.filter(ImageFilter.BLUR)
blurred_img.show()

sharpened_img = img.filter(ImageFilter.SHARPEN)
sharpened_img.show()

4. 图像保存

python 复制代码
resized_img.save('resized_example.jpg')
rotated_img.save('rotated_example.jpg')
blurred_img.save('blurred_example.jpg')

5. 图像合成

python 复制代码
overlay = Image.open('overlay.png')
img.paste(overlay, (0, 0), overlay)
img.show()

6. 其他功能

合并图像

Pillow 允许合并不同的图像,创建新的图像或者将图像叠加在一起。

python 复制代码
from PIL import Image

# 加载两个图像
img1 = Image.open('image1.jpg')
img2 = Image.open('image2.jpg')

# 合并图像
img1.paste(img2, (50, 50))  # 将 img2 合并到 img1 上

img1.show()

调整颜色

可以调整图像的色彩和颜色平衡,使图像看起来更加生动。

python 复制代码
from PIL import ImageEnhance

# 提高图像亮度
enhancer = ImageEnhance.Brightness(img)
brightened_img = enhancer.enhance(1.5)  # 增加亮度1.5倍

brightened_img.show()

创建缩略图

Pillow 能够创建图像的缩略图,用于生成较小尺寸的图像。

python 复制代码
# 创建缩略图
img.thumbnail((100, 100))  # 将图像缩放至 100x100
img.show()

添加文字

Pillow 允许在图像上添加文字,包括自定义字体、颜色和位置。

python 复制代码
from PIL import ImageFont, ImageDraw

# 加载字体
font = ImageFont.truetype("arial.ttf", 36)

# 创建 ImageDraw 对象
draw = ImageDraw.Draw(img)

# 添加文字
draw.text((10, 10), "Hello, Pillow!", font=font, fill=(255, 255, 255))

img.show()

总结

Pillow 提供了多种图像处理功能,包括基本操作、滤镜效果、合成和其他增强功能。这些功能能够帮助你处理和修改图像,根据需求进行各种操作。结合官方文档和实践,能够更好地掌握 Pillow 图像处理库的使用。


Python学习路线

更多学习内容:ipengtao.com

相关推荐
老赵全栈实战20 分钟前
Pydantic配置管理最佳实践(一)
python
只会cv的前端攻城狮32 分钟前
Elpis-Core — 融合 Koa 洋葱圈模型实现服务端引擎
前端·后端
codetown35 分钟前
2026年Zig编程语言权威指南:从系统级底层架构到现代软件工程实践
后端·程序员
cg332 小时前
cc-connect,十分钟帮你把 claude code 连接到微信,飞书,钉钉等等平台
后端·openai
用户1427868669322 小时前
Java多态的底层真相:JVM到底怎么知道该调哪个方法?(面试高频)
后端
初次攀爬者2 小时前
RabbitMQ的消息模式和高级特性
后端·消息队列·rabbitmq
摸鱼的春哥3 小时前
惊!黑客靠AI把墨西哥政府打穿了,海量数据被黑
前端·javascript·后端
考虑考虑3 小时前
JDK25模块导入声明
java·后端·java ee
想用offer打牌5 小时前
高并发下如何保证接口的幂等性
后端·面试·状态机