Python Pillow - 添加图像填充



添加图像填充是指在图像周围添加边框。这是一种在调整图像大小而不改变其纵横比或裁剪图像的有用技术。可以在图像的顶部、底部、左侧和右侧添加填充。这在处理边缘具有重要信息的图像时尤其重要,您希望保留这些信息以进行分割等任务。

Pillow (PIL) 库在其 ImageOps 模块中提供了两个函数,pad()expand(),用于向图像添加填充。

使用 ImageOps.pad() 函数填充图像

pad() 函数用于将图像调整大小并填充到指定的大小和纵横比。它允许您指定输出大小、重采样方法、背景颜色以及原始图像在填充区域中的位置。该函数的语法如下:

PIL.ImageOps.pad(image, size, method=Resampling.BICUBIC, color=None, centering=(0.5, 0.5))

其中:

  • image - 要调整大小和填充的图像。

  • size - 一个元组,指定请求的输出大小(以像素为单位),格式为 (宽度, 高度)。该函数将调整图像大小到此尺寸,同时保持纵横比。

  • method - 此参数确定调整大小期间使用的重采样方法。默认方法是 BICUBIC,这是一种插值类型。您可以指定 PIL 支持的其他重采样方法。常见的选项包括 NEAREST、BILINEAR 和 LANCZOS。

  • color - 此参数指定填充区域的背景颜色。它也支持 RGBA 元组,例如 (R, G, B, A)。如果未指定,则默认背景颜色为黑色。

  • centering - 此参数控制原始图像在填充版本中的位置。它指定为一个包含 0 到 1 之间两个值的元组。

示例

这是一个使用 ImageOps.pad() 函数向图像添加填充的示例。

from PIL import Image
from PIL import ImageOps

# Open the input image
input_image = Image.open('Images/elephant.jpg')

# Add padding to the image
image_with_padding = ImageOps.pad(input_image, (700, 300), color=(130, 200, 230))

# Display the input image
input_image.show()

# Display the image with the padding
image_with_padding.show()

输入

elephant

输出

添加填充后调整大小后的输出图像:

elephant resize

使用 ImageOps.expand() 函数添加边框

expand() 函数在图像周围添加指定宽度和颜色的边框。它可用于创建装饰性框架或强调图像内容。其语法如下:

PIL.ImageOps.expand(image, border=0, fill=0)
  • image - 要扩展边框的图像。

  • border - 要添加的边框宽度(以像素为单位)。它决定图像周围边框的宽度。默认值为 (0)。

  • fill - 像素填充值,表示边框的颜色。默认值为 0,对应于黑色。您可以使用适当的颜色值指定填充颜色。

示例

这是一个使用 ImageOps.expand() 函数向图像添加填充的示例。

from PIL import Image, ImageOps

# Open the input image
input_image = Image.open('Images/Car_2.jpg')

# Add padding of 15-pixel border
image_with_padding = ImageOps.expand(input_image, border=(15, 15, 15, 15), fill=(255, 180, 0))

# Display the input image
input_image.show()

# Display the output image with padding
image_with_padding.show()

输入

yellow car

输出

添加填充后的输出图像:

car border
广告