Python图像处理利器 - Pillow库入门指南
今天要给大家介绍一个超强大的Python图像处理库 - Pillow(PIL)。无论是调整图片大小、添加滤镜效果,还是制作简单的图像处理软件,Pillow都能帮你轻松搞定。让我们一起开启图像处理的奇妙之旅吧!
1. Pillow库简介与安装
Pillow是Python图像库(PIL)的一个分支,它提供了丰富的图像处理功能。安装非常简单,只需要在命令行输入:
1pip install Pillow
2. 基础图像操作
让我们从最基本的图像操作开始:
1from PIL import Image
2
3# 打开图片
4img = Image.open('example.jpg')
5
6# 获取图片信息
7print(f'图片大小:{img.size}')
8print(f'图片格式:{img.format}')
9print(f'图片模式:{img.mode}')
10
11# 调整图片大小
12resized_img = img.resize((800, 600))
13
14# 保存图片
15resized_img.save('resized_example.jpg')
小贴士 :处理图片时要记得关闭文件,使用img.close()
,或者使用with语句更优雅:
1with Image.open('example.jpg') as img:
2 # 进行图片处理
3 img.thumbnail((800, 600))
4 img.save('thumbnail.jpg')
3. 图片旋转和翻转
来看看如何让图片转起来:
1from PIL import Image
2
3# 打开图片
4with Image.open('example.jpg') as img:
5 # 顺时针旋转90度
6 rotated_img = img.rotate(90)
7
8 # 左右翻转
9 flipped_img = img.transpose(Image.FLIP_LEFT_RIGHT)
10
11 # 保存处理后的图片
12 rotated_img.save('rotated.jpg')
13 flipped_img.save('flipped.jpg')
4. 图片滤镜效果
Pillow提供了多种图片滤镜,让我们试试一些常用的:
1from PIL import Image, ImageEnhance
2
3def apply_filters(image_path):
4 with Image.open(image_path) as img:
5 # 增加亮度
6 enhancer = ImageEnhance.Brightness(img)
7 brightened = enhancer.enhance(1.5)
8
9 # 增加对比度
10 enhancer = ImageEnhance.Contrast(brightened)
11 final = enhancer.enhance(1.2)
12
13 final.save('enhanced.jpg')
注意事项 :enhance()方法的参数大于1会增强效果,小于1会减弱效果,1表示保持原样。
5. 添加文字水印
给图片添加水印是很常见的需求:
1from PIL import Image, ImageDraw, ImageFont
2
3def add_watermark(image_path, text):
4 with Image.open(image_path) as img:
5 # 创建可以绘图的对象
6 draw = ImageDraw.Draw(img)
7
8 # 选择字体和大小
9 font = ImageFont.truetype('arial.ttf', 36)
10
11 # 计算文字位置(右下角)
12 text_width = font.getsize(text)[0]
13 text_position = (img.width - text_width - 20, img.height - 50)
14
15 # 添加文字
16 draw.text(text_position, text, font=font, fill=(255, 255, 255, 128))
17
18 img.save('watermarked.jpg')
实战小练习
试试把我们学到的知识组合起来,制作一个简单的图片处理工具:
1from PIL import Image, ImageEnhance
2
3def process_image(image_path, operations):
4 “”“
5 简单的图片处理函数
6 operations: 字典,包含要执行的操作和参数
7 ”“”
8 with Image.open(image_path) as img:
9 if 'resize' in operations:
10 img = img.resize(operations['resize'])
11
12 if 'rotate' in operations:
13 img = img.rotate(operations['rotate'])
14
15 if 'brightness' in operations:
16 enhancer = ImageEnhance.Brightness(img)
17 img = enhancer.enhance(operations['brightness'])
18
19 img.save('processed.jpg')
20
21# 使用示例
22operations = {
23 'resize': (800, 600),
24 'rotate': 90,
25 'brightness': 1.2
26}
27process_image('example.jpg', operations)
总结
今天我们学习了Pillow库的基础用法,包括:
基本的图片操作(打开、保存、调整大小)
图片的旋转和翻转
添加滤镜效果
给图片添加水印
这些只是Pillow强大功能的冰山一角,掌握这些基础操作后,你就能开发出各种有趣的图片处理工具啦!