目录
如何在我的系统上安装Python图像处理库(PIL)?
如何使用PIL打开和显示图像?
如何使用PIL调整图像大小?
首页 科技周边 IT业界 使用Python成像库操纵图像

使用Python成像库操纵图像

Feb 19, 2025 pm 12:33 PM

Python图像处理库PIL/Pillow入门指南

核心要点

  • Python图像处理库(PIL)是一个免费工具,它为Python解释器添加了图像处理功能,支持各种图像文件格式,并提供标准的图像处理程序,例如基于像素的操作、滤镜、图像增强等等。
  • 尽管PIL的最后一个版本(1.1.7)发布于2009年,并且只支持Python 1.5.2-2.7,但名为Pillow的项目已经fork了PIL的代码库并添加了Python 3.x的支持,使其成为大多数Python用户可行的选择。
  • 使用PIL或Pillow,您可以轻松执行诸如读取图像、将图像转换为灰度或其他类型、调整图像大小以及保存图像等任务。该库的全面文档提供了更多详细信息和教程。

在之前的关于Python技巧的文章中,我提到过Python是一种能够激发用户热爱的语言。

原因之一是这种语言提供了大量的节省时间的库。一个很好的例子是Python图像处理库(PIL),本文将重点介绍它。

PIL能做什么

PIL是一个免费的库,它为Python解释器添加了图像处理功能,支持多种图像文件格式,例如PPM、PNG、JPEG、GIF、TIFF和BMP。

PIL提供了许多标准的图像处理/操作程序,例如:

  • 基于像素的操作
  • 遮罩和透明度处理
  • 滤镜(例如,模糊、轮廓、平滑、边缘检测)
  • 图像增强(例如,锐化、亮度调整、对比度)
  • 几何、颜色和其他变换
  • 向图像添加文本
  • 剪切、粘贴和合并图像
  • 创建缩略图

PIL和Pillow

PIL的一个问题是,其最新的版本1.1.7发布于2009年,并且只支持Python 1.5.2-2.7。尽管PIL网站承诺即将推出Python 3.x的版本,但其最后一次提交是在2011年,并且开发似乎已经停止。

幸运的是,对于Python 3.x用户来说,并非一切都已结束。一个名为Pillow的项目已经fork了PIL的代码库并添加了Python 3.x的支持。鉴于大多数读者可能都在使用Python 3.x,因此本文将重点介绍Pillow更新。

安装Pillow

由于Pillow支持从Python 2.4到最新版本的Python,我将只关注Pillow的安装,而不是旧版本的PIL。

在Mac上使用Python

我目前正在Mac OS X Yosemite 10.10.5上编写本教程,因此将描述如何在Mac OS X机器上安装Pillow。但是,不用担心,我将在本节末尾提供一个链接,其中描述了如何在其他操作系统上安装Pillow。

我只想在这里指出,Mac OS X预装了Python。但是,该版本很可能早于3.x。

例如,在我的机器上,当我运行$ python --version终端命令时,我得到的是Python 2.7.10。

Python和pip

安装Pillow的一种非常简单的方法是通过pip。

如果您的机器上没有安装pip,只需在终端中输入以下命令即可完成:

$ sudo easy_install pip
登录后复制
登录后复制

现在,要安装Pillow,只需在终端中输入以下内容:

$ sudo pip install pillow
登录后复制
登录后复制

这很容易,不是吗?

正如我承诺的那样,有关在其他操作系统上安装Pillow的信息,您可以在这里找到相关说明。

一些例子

在本节中,我将演示一些我们可以使用PIL完成的简单操作。

我将对以下图像执行这些测试:

Manipulating Images with the Python Imaging Library

如果您想按照这些示例操作,请下载此图像。

读取图像

这是图像处理任务中最基本的操作,因为要处理图像,必须先读取它。使用PIL,这可以很容易地完成,如下所示:

from PIL import Image
img = Image.open('brick-house.png')
登录后复制

请注意,这里的img是一个PIL图像对象,由open()函数创建,该函数是PIL Image模块的一部分。

您还可以读取已打开的文件、字符串或tar存档。

将图像转换为灰度、显示并保存

文件brick-house.png是一个彩色图像。要将其转换为灰度、显示它,然后保存新的灰度图像,您可以简单地执行以下操作:

from PIL import Image
img = Image.open('brick-house.png').convert('L')
img.show()
img.save('brick-house-gs','png')
登录后复制

请注意,我们使用了三个主要函数来执行此操作:convert()、show()和save()。由于我们要转换为灰度图像,因此在convert()中使用了参数'L'。

以下是生成的图像:

Manipulating Images with the Python Imaging Library

转换为其他图像类型

我们正在处理的图像是png类型。假设您想将其转换为其他图像类型,例如jpg。可以使用save()函数(如上小节中用于保存结果(将输出写入磁盘)的函数)来执行此操作:

from PIL import Image
img = Image.open('brick-house.png')
img.save('brick-image','jpeg')
登录后复制

调整图像大小

我们原始图像的大小(尺寸)是440 x 600像素。如果我们想调整它的大小,并使其大小为256 x 256像素,则可以执行以下操作:

from PIL import Image
img = Image.open('brick-house.png')
new_img = img.resize((256,256))
new_img.save('brick-house-256x256','png')
登录后复制

这会生成一个新的正方形图像:

Manipulating Images with the Python Imaging Library

如您所见,这会将图像压缩到所需的尺寸,而不是裁剪它,这可能不是您想要的。当然,您也可以在保持适当纵横比的同时裁剪图像。

总结

这个快速入门仅旨在介绍PIL的表面,并演示如何通过PIL库在Python中轻松完成一些复杂的图像处理任务。

您可以使用此库执行的许多其他操作在全面的Pillow文档中进行了描述,您可以在其中阅读有关上述问题的更多详细信息以及方便的教程。

我希望这个介绍能激励您尝试使用Python进行图像处理。玩得开心!

Python图像处理库(PIL)常见问题解答(FAQ)

如何在我的系统上安装Python图像处理库(PIL)?

要安装Python图像处理库(PIL),您需要使用pip,它是Python的包管理器。打开您的终端或命令提示符并输入以下命令:pip install pillow。'pillow'库是PIL的一个分支,并且正在积极维护,因此建议使用'pillow'而不是PIL。如果您安装了多个版本的Python,则可能需要对Python 3使用pip3 install pillow

如何使用PIL打开和显示图像?

要使用PIL打开和显示图像,您需要使用Image.open()函数打开图像,并使用Image.show()函数显示图像。这是一个示例:

$ sudo easy_install pip
登录后复制
登录后复制

在此代码中,'image.jpg'是您的图像文件的名称。确保图像文件与您的Python脚本位于同一目录中,或者提供图像文件的完整路径。

如何使用PIL调整图像大小?

要使用PIL调整图像大小,您可以使用Image.resize()函数。此函数接受一个元组,该元组指定以像素为单位的新大小。这是一个示例:

$ sudo pip install pillow
登录后复制
登录后复制

在此代码中,图像大小调整为800×800像素。

(后续FAQ答案类似,略去,保持文章大意不变)

以上是使用Python成像库操纵图像的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用GO构建网络漏洞扫描仪 使用GO构建网络漏洞扫描仪 Apr 01, 2025 am 08:27 AM

此基于GO的网络漏洞扫描仪有效地确定了潜在的安全弱点。 它利用了GO的并发功能的速度功能,包括服务检测和漏洞匹配。让我们探索它的能力和道德

CNCF ARM64飞行员:影响和见解 CNCF ARM64飞行员:影响和见解 Apr 15, 2025 am 08:27 AM

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效

使用AWS ECS和LAMBDA的无服务器图像处理管道 使用AWS ECS和LAMBDA的无服务器图像处理管道 Apr 18, 2025 am 08:28 AM

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。 我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。 Th

21个开发人员新闻通讯将在2025年订阅 21个开发人员新闻通讯将在2025年订阅 Apr 24, 2025 am 08:28 AM

与这些顶级开发人员新闻通讯有关最新技术趋势的了解! 这个精选的清单为每个人提供了一些东西,从AI爱好者到经验丰富的后端和前端开发人员。 选择您的收藏夹并节省时间搜索REL

See all articles