详解Python PIL ImageOps.expand()方法

  • Post category:Python

Python PIL库(Python Imaging Library)是一款支持图像处理的Python扩展库,其中的ImageOps模块提供了一系列的图像操作方法。本篇文章将详细介绍PIL ImageOps.expand()方法,包括定义、参数、示例等内容。

定义:

PIL ImageOps.expand()方法主要用于在图像的边缘添加指定大小的边框。

语法:

ImageOps.expand(image, border, fill=None)

参数:

  • image:必须参数,表示待处理的图像,可以是PIL格式的Image对象,也可以是图像的路径。
  • border:必须参数,表示扩展的边框大小,可以是一个整数、一个元组或者列表。
  • 当border为一个整数时,表示在整个图像上添加同样大小的边框。
  • 当border为一个元组或列表时,格式为(left, top, right, bottom),表示在左、上、右、下分别添加不同大小的边框。
  • fill:可选参数,表示边框填充颜色,可以是一个整数或元组。
  • 当fill是一个整数时,表示使用该颜色填充整个边框。
  • 当fill是一个元组时,格式为(R, G, B),表示使用该颜色填充整个边框。

示例:

下面通过两个示例来演示ImageOps.expand()方法的使用方式。

示例一:

from PIL import Image, ImageOps

# 打开图片
img = Image.open("example.jpg")

# 添加10像素边框
img = ImageOps.expand(img, 10)

# 显示图片
img.show()

在该示例中,我们打开了名为“example.jpg”的图片,并使用ImageOps.expand()方法添加了10像素的边框。最后将处理后的图片显示出来。

示例二:

from PIL import Image, ImageOps

# 打开图片
img = Image.open("example.jpg")

# 添加不同大小的边框
img = ImageOps.expand(img, (30, 10, 20, 5))

# 将边框颜色改为红色
img = ImageOps.expand(img, (30, 10, 20, 5), fill="red")

# 显示图片
img.show()

在该示例中,我们打开了名为“example.jpg”的图片,并使用ImageOps.expand()方法添加了一个左边为30像素、上边为10像素、右边为20像素、下边为5像素的不同大小的边框。然后,我们将边框颜色改为红色。最后将处理后的图片显示出来。

注意事项:

  • ImageOps.expand()方法会返回新的Image对象,而不会修改原始图像。
  • border参数的元组格式为(left, top, right, bottom),其中left/top为添加边框的左、上边缘大小,right/bottom为添加边框的右、下边缘大小。
  • fill参数可以是一个整数或元组,其格式为(R, G, B),表示RGB颜色值。如果fill参数不传或者传入None,表示使用图像原始的填充色。
  • 如果边框大小为负数,则会从图像边缘缩小图像。