详解在Python中使用图像数据类型的pillow

  • Post category:Python

Pillow是Python中处理图像的一个强大的库,它是Python Imaging Library (PIL) 的一个分支,提供了丰富的图像处理和操作的功能。

安装 Pillow

在使用 Pillow 之前,需要安装 Pillow 库。可以通过以下命令安装:

pip install pillow

加载图像

使用 Pillow 加载一个图像文件可以很容易地完成。示例代码如下:

from PIL import Image

# Open an image file
with Image.open("example.jpg") as im:
    # Display image information
    print(f"Image format: {im.format}")
    print(f"Image size: {im.size}")
    print(f"Image mode: {im.mode}")

    # Display the image
    im.show()

这里使用Pillow的Image类打开图片文件example.jpg。with语句块会自动关闭文件,防止数据泄漏和浪费内存空间。

在代码块中,我们使用了三个属性来了解图片的基本信息:format, sizemode。同时,使用show()方法在一个独立的窗口中打开了该图片。

修改图像

Pillow 提供了多种方法用于修改图像。其中一些常用方法有:

  • 调整图像大小
  • 旋转和翻转图像
  • 裁剪和粘贴图像
  • 色彩空间转换

下面是一些使用 Pillow 修改图像的示例:

调整图像大小

from PIL import Image

# Open the original image
with Image.open("example.jpg") as im:
    # Resize the image
    new_size = (im.size[0] // 2, im.size[1] // 2)
    new_im = im.resize(new_size)

    # Display the new resized image
    new_im.show()

在代码块中,我们首先打开原始图像,然后调整图像大小为原图像面积的一半,并将其保存到new_im变量中。最后,使用show()方法打开新图像。

图像旋转

from PIL import Image

# Open the original image
with Image.open("example.jpg") as im:
    # Rotate the image
    new_im = im.rotate(45, expand=True)

    # Display the new rotated image
    new_im.show()

在代码块中,我们首先打开原始图像,然后将图像旋转 45 度,并将其保存到new_im变量中。最后,使用show()方法打开新图像。

from PIL import Image

# Open the original image
with Image.open("example.jpg") as im:
    # Flip the image horizontally
    new_im = im.transpose(method=Image.FLIP_LEFT_RIGHT)

    # Display the new flipped image
    new_im.show()

在代码块中,我们首先打开原始图像,然后将其水平翻转,并将其保存到new_im变量中。最后,使用show()方法打开新图像。

裁剪图像

from PIL import Image

# Open the original image
with Image.open("example.jpg") as im:
    # Crop the image
    box = (100, 100, 400, 400)
    new_im = im.crop(box)

    # Display the new cropped image
    new_im.show()

在代码块中,我们首先打开原始图像,然后根据指定的盒子(以像素为单位)裁剪图像,并将其保存到new_im变量中。最后,使用show()方法打开新图像。

总结

Pillow 提供了大量功能强大的图像处理方法,并且易于使用。本文介绍了如何使用 Pillow 中的预处理方法调整、旋转、翻转或裁剪图像。在 Pillow 文档中可以找到更多可用的方法,包括像素操作、滤波器和色彩空间转换等高级的方法。