详解Python PIL Image.open()方法

  • Post category:Python

当使用Python进行图像处理时,可以使用Python Imaging Library(PIL)的Image模块。其中,打开一个图像的方式是使用Image.open()方法。下面将为大家详细讲解该方法的用法。

Image.open()方法的语法和参数

Image.open()方法是一个函数,其语法如下:

Image.open(fp[, mode])

其中,fp表示要打开的图像文件路径,mode表示可选的模式。mode所接受的输入参数有以下几种:

  • “r”: 以只读模式打开文件。
  • “w”: 以写入模式打开文件。
  • “a”: 以添加模式打开文件,写入的数据将被添加到文件末尾。
  • “x”: 以互斥独占方式打开文件,如果文件已经存在则会抛出异常。

默认情况下,mode的值为”r”,即只读模式。

Image.open()示例说明

接下来,我们会通过两个示例来详细说明Image.open()方法的用法。

示例1:使用Image.open()方法读取本地图像

该示例演示如何从本地文件系统中读取一张PNG格式的图像。

1. 创建图像文件

首先,我们需要在本地磁盘上创建一个PNG格式的图像文件。这里我们创建一个名为test_img.png的文件。

2. 导入必要的库

在Python代码中,我们需要导入Pillow库的Image模块,如下所示:

from PIL import Image

3. 打开图像文件

我们可以使用以下代码打开刚刚创建的图像文件:

img = Image.open('test_img.png')

这里,我们将图像打开并存放在变量img中。

4. 查看图像属性

如果我们想查看图像的一些属性信息,可以使用以下代码:

print(img.format)
print(img.size)
print(img.mode)

这里,我们输出了图像的格式、尺寸和模式等属性信息。

5. 显示图像

如果我们想显示图像,可以使用以下代码:

img.show()

这里,我们调用了img对象的show()方法,该方法会显示图像。

示例2:使用Image.open()方法读取在线图像

该示例演示如何使用Image.open()方法从Web中读取一张图像。

1. 导入必要的库

在Python代码中,我们需要导入Pillow库的Image模块和urllib库的request模块,如下所示:

from PIL import Image  
from urllib.request import urlopen

2. 打开图像文件

接下来,我们可以使用以下代码从Web上读取一张图像:

url = 'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png'
img = Image.open(urlopen(url))

这里,我们使用urllib库的request模块读取了一张Google的logo图像,并将其存放在内存中。

3. 查看图像属性

接下来,我们可以使用与示例1中相同的代码查看图像属性信息。

4. 显示图像

我们可以使用与示例1中相同的代码显示图像。

到此为止,我们已经成功地使用Image.open()方法读取了本地图像和在线图像,并展示了它们的属性信息和图像本身。