Python 实战:图片处理
1 引言:
在数字化时代,图片处理是一项常见的任务。无论是在个人生活中还是在工作中,我们经常需要对图片进行裁剪、调整大小或添加特效等操作。在本文中,我们将介绍一个使用 Python 的 Pillow 库来进行图片处理的简单程序。
2 程序案例:
案例中的图片放置在程序的目录中,输入要处理的图片文件名时,包含图片的后缀。输出的图片文件名需要改一个名字,同样也包含后缀的名字。
- from PIL import Image, ImageFilter
- def resize_image(input_image, output_image, size):
- with Image.open(input_image) as image:
- image.thumbnail(size)
- image.save(output_image)
- def apply_filter(input_image, output_image, filter_type):
- with Image.open(input_image) as image:
- filtered_image = image.filter(filter_type)
- filtered_image.save(output_image)
- input_image = input("请输入要处理的图片文件名:")
- output_image = input("请输入输出的图片文件名:")
- # 调整图片大小
- size = (800, 600)
- resize_image(input_image, output_image, size)
- print("图片大小调整完成!")
- # 应用滤镜
- filter_type = ImageFilter.BLUR
- output_image_filtered = output_image.split(".")[0] + "_filtered.jpg"
- apply_filter(output_image, output_image_filtered, filter_type)
- print("滤镜应用完成!")
3 案例讲解:
这个程序使用了 Python 的 Pillow 库(基于 PIL 库),它提供了丰富的图像处理功能。以下是代码中各部分的详细说明:
我们首先导入了Image和ImageFilter类,它们是 Pillow 库中用于图像处理的核心类。
resize_image函数接受输入图片文件名、输出图片文件名和目标尺寸作为参数。
在函数内部,我们使用Image.open函数打开输入图片,并将其存储在image变量中。
使用thumbnail方法调整图像的大小,将其缩放到目标尺寸。
使用save方法将处理后的图像保存为输出图片。
apply_filter函数接受输入图片文件名、输出图片文件名和滤镜类型作为参数。
在函数内部,我们使用Image.open函数打开输入图片,并将其存储在image变量中。
使用filter方法应用指定的滤镜类型。
使用save方法将处理后的图像保存为输出图片。
在主程序中,我们通过用户输入获取输入图片文件名和输出图片文件名。
使用resize_image函数调整图片大小,并将结果保存到输出图片。
使用apply_filter函数应用滤镜,并将结果保存到另一个输出图片。
4 可以学到什么:
通过这个实例,我们可以学到以下几点:
如何使用 Pillow 库打开、处理和保存图像文件。
如何使用thumbnail方法调整图像的大小,将其缩放到指定的尺寸。
如何使用filter方法应用不同类型的滤镜来改变图像的外观。
如何编写函数来封装图像处理的操作,提高代码的可重用性和可维护性。
5 总结:
本篇文章介绍了一个实用的 Python 实战案例,通过使用 Pillow 库进行图片处理。通过调整图片大小和应用滤镜,我们可以轻松实现常见的图片处理操作。图像处理是一个广泛应用于设计、摄影和图形领域的任务,掌握图像处理技术可以为我们的工作和创造带来很大的帮助。然而,在实际应用中,请确保遵守相关的版权法律和道德规范,并确保使用合法和合适的图片进行处理。
往期回顾
Python 小白的晋级之路 - 第一部分:Python 的重要性和简洁的语法
Python 小白的晋级之路 - 第二部分:探索 Python 变量
Python 小白的晋级之路 - 第三部分:玩转 Python 字符串
Python 小白的晋级之路 - 第四部分:掌握 Python 列表
Python 小白的晋级之路 - 第五部分:驾驭 Python 元组
Python 小白的晋级之路 - 第六部分:Python 的 if 语句
Python 小白的晋级之路 - 第八部分:探秘 while 循环的精髓
Python 小白的晋级之路 - 第九部分:征服 for 循环的领域
Python 小白的晋级之路 - 第十部分:探索常用函数的奇妙世界
Python 小白的晋级之路 - 第十一部分:探索正则表达式的魔力
Python 小白的晋级之路 - 第十二部分:了解常用第三方函数
Python爬取西门子论坛标题,看看大家最近都在讨论什么问题
Python 小白的晋级之路 - 第十四部分:输入、输出和格式
2024年04月