Python Pillow - 使用图像模块

为了显示图像,pillow 库在其中使用了一个图像类。 pillow 包中的图像模块包含一些重要的内置功能,如加载图像或创建新图像等。


打开、旋转和显示图像

要加载图像,我们只需从 pillow 导入图像模块并调用 Image.open(),并传递图像文件名。

我们将调用 PIL 模块而不是调用 Pillow 模块,以使其向后兼容名为 Python Imaging Library (PIL) 的旧模块。 这就是为什么我们的代码以 "from PIL import Image" 而不是 "from Pillow import Image" 开头。

接下来,我们将通过调用 Image.open() 函数 来加载图像,该函数返回 Image 对象数据类型的值。 我们对图像对象所做的任何修改都可以使用 save() 方法保存到图像文件中。 我们使用 Image.open() 接收的 Image 图像对象,稍后可用于调整大小、裁剪、绘制或调用此图像对象的其他图像处理方法。

示例

以下示例演示了使用 python pillow 旋转图像 −

from PIL import Image
#Open image using Image module
im = Image.open("images/cuba.jpg")
#Show actual Image
im.show()
#Show rotated Image
im = im.rotate(45)
im.show()

输出

如果将上述程序保存为 Example.py 并执行,它会使用标准的 PNG 显示实用程序显示原始图像和旋转后的图像,如下所示 −

实际图像

原始

旋转图像(45 度)

旋转图像

图像模块的属性

Image 类的实例有一些属性。 让我们试着通过例子来理解其中的一些 −

Image.filename

该函数用于获取图像的文件名或路径。

>>>image = Image.open('beach1.jpg')
>>> image.filename
'beach1.jpg'

Image.format

此函数返回图像文件的文件格式,如"JPEG"、"BMP"、"PNG"等。

>>> image = Image.open('beach1.jpg')
>>>
>>> image.format
'JPEG'

Image.mode

用于获取图像使用的像素格式。 典型值为"1"、"L"、"RGB"或"CMYK"。

>>> image.mode
'RGB'

Image.size

它返回由图像的高度和宽度组成的元组。

>>> image.size
(1280, 721)

Image.width

它只返回图像的宽度。

>>> image.width
1280

Image.height

它只返回图像的高度。

>>> image.height
721

Image.info

它返回一个包含与图像关联的数据的字典。

>>> image.info
{'jfif': 257, 'jfif_version': (1, 1), 'dpi': (300, 300), 'jfif_unit': 1, 'jfif_density': (300, 300), 'exif': b"Exif\x00\x00MM\x00*\x00\x00\x00
....
....
\xeb\x00\x00'\x10\x00\x00\xd7\xb3\x00\x00\x03\xe8"}

Image.palette

它返回调色板表,如果有的话。

>>> image.palette

上面的输出 − None