Python图像处理利器 - Pillow库入门指南

文摘   2024-11-29 10:36   辽宁  

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强大功能的冰山一角,掌握这些基础操作后,你就能开发出各种有趣的图片处理工具啦!


楼市前景
浅析买房政策、楼市解读,分享买房技巧
 最新文章