用Python的PIL库(Pillow)处理图像真的得心应手

简介: 用Python的PIL库(Pillow)处理图像真的得心应手

用Python的PIL库(Pillow)处理图像真的得心应手


Python Imaging Library(PIL)是Python中最流行的图像处理库之一,它提供了许多强大的功能,如图像缩放、剪裁、旋转、滤波等等。Pillow是其在Python 3之后的分支,提供了更好的兼容性和更多的功能。本篇文章将介绍如何使用Pillow处理图像,并提供多个实用例子。


安装Pillow


在使用Pillow之前,需要首先安装它。可以通过以下命令在终端中安装:


pip install Pillow


打开和保存图像


处理图像的第一步是打开它们。Pillow提供了Image.open()函数用于打开图像,该函数返回一个Image对象。可以通过调用该对象的方法来操作图像。例如,以下代码打开名为image.jpg的图像并显示其大小和格式:


from PIL import Image
img = Image.open("image.jpg")
print(img.size, img.format)

要保存图像,可以使用Image.save()函数。例如,以下代码将修改后的图像保存为名为output.jpg的文件:


from PIL import Image
img = Image.open("image.jpg")
# 图像处理...
img.save("output.jpg")


图像缩放


Pillow提供了Image.resize()函数用于缩放图像。以下代码将图像的大小缩小一半:


from PIL import Image
img = Image.open("image.jpg")
new_size = (img.size[0]//2, img.size[1]//2)
img = img.resize(new_size)
img.save("output.jpg")


图像剪裁


Pillow提供了Image.crop()函数用于剪裁图像。以下代码将图像剪裁为其左上角的1/4:


from PIL import Image
img = Image.open("image.jpg")
new_size = (img.size[0]//2, img.size[1]//2)
img = img.resize(new_size)
cropped_img = img.crop((0, 0, new_size[0]//2, new_size[1]//2))
cropped_img.save("output.jpg")


图像旋转


Pillow提供了Image.rotate()函数用于旋转图像。以下代码将图像逆时针旋转45度:


from PIL import Image
img = Image.open("image.jpg")
img = img.rotate(-45)
img.save("output.jpg")


图像滤波


Pillow提供了多种滤波器用于处理图像,如模糊、锐化、边缘检测等。以下代码将图像应用高斯模糊:


from PIL import Image
from PIL import ImageFilter
img = Image.open("image.jpg")
img = img.filter(ImageFilter.GaussianBlur(radius=2))
img.save("output.jpg")


以上是使用Pillow处理图像的一些例子,Pillow提供了更多的功能,如图像合并、调整亮度和对比度、转换图像格式等等。希望这篇文章可以帮助你更好地理解和使用Pillow库。


相关文章
|
13天前
|
网络协议 数据库连接 Python
python知识点100篇系列(17)-替换requests的python库httpx
【10月更文挑战第4天】Requests 是基于 Python 开发的 HTTP 库,使用简单,功能强大。然而,随着 Python 3.6 的发布,出现了 Requests 的替代品 —— httpx。httpx 继承了 Requests 的所有特性,并增加了对异步请求的支持,支持 HTTP/1.1 和 HTTP/2,能够发送同步和异步请求,适用于 WSGI 和 ASGI 应用。安装使用 httpx 需要 Python 3.6 及以上版本,异步请求则需要 Python 3.8 及以上。httpx 提供了 Client 和 AsyncClient,分别用于优化同步和异步请求的性能。
python知识点100篇系列(17)-替换requests的python库httpx
|
1天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
12 5
|
9天前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
23 3
|
14天前
|
Linux Android开发 开发者
【Python】GUI:Kivy库环境安装与示例
这篇文章介绍了 Kivy 库的安装与使用示例。Kivy 是一个开源的 Python 库,支持多平台开发,适用于多点触控应用。文章详细说明了 Kivy 的主要特点、环境安装方法,并提供了两个示例:一个简单的 Hello World 应用和一个 BMI 计算器界面。
23 0
|
19天前
|
PyTorch 测试技术 算法框架/工具
Python中Thop库的常见用法和代码示例
肆十二在B站分享了关于THOP(Torch-OpCounter)的实战教学视频。THOP是一个用于计算PyTorch模型操作数和计算量的工具,帮助开发者评估模型复杂度和性能。本文介绍了THOP的安装、使用方法及基本用例,包括如何计算模型的FLOPs和参数量。
46 0
|
算法 计算机视觉 Python
在python3下用PIL做图像处理
Python Imaging Library (PIL)是python下的图像处理模块,支持多种格式,并提供强大的图形与图像处理功能。 目前PIL的官方最新版本为1.1.7,支持的版本为python 2.5, 2.6, 2.7,并不支持python3,但有高手把它重新编译生成python3下可安装的exe了。
1874 0
|
6天前
|
安全 数据处理 开发者
Python中的多线程编程:从入门到精通
本文将深入探讨Python中的多线程编程,包括其基本原理、应用场景、实现方法以及常见问题和解决方案。通过本文的学习,读者将对Python多线程编程有一个全面的认识,能够在实际项目中灵活运用。
|
1天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###
|
6天前
|
弹性计算 安全 小程序
编程之美:Python让你领略浪漫星空下的流星雨奇观
这段代码使用 Python 的 `turtle` 库实现了一个流星雨动画。程序通过创建 `Meteor` 类来生成具有随机属性的流星,包括大小、颜色、位置和速度。在无限循环中,流星不断移动并重新绘制,营造出流星雨的效果。环境需求为 Python 3.11.4 和 PyCharm 2023.2.5。
26 9