Python Pillow 简明教程

Python Pillow - Adding Padding to an Image

为图像添加填充涉及在图像周围添加一个边框。这是在不改变图像纵横比或裁剪图像的情况下调整图像大小时一项有用的技术。可以将填充添加到图像的顶部、底部、左侧和右侧。当处理边缘包含重要信息且想要保留这些信息以用于分割等任务的图像时,这尤其重要。

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

Padding Images with ImageOps.pad() function

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

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

其中,

  1. image −要调整大小并添加填充的图像。

  2. size −一个元组,以像素为单位指定请求的输出大小,格式为 (width, height)。该函数将按此大小调整图像大小,同时保持纵横比。

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

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

  5. centering −此参数控制原始图像在填充版本中的位置。它指定为具有介于 0 和 1 之间的两个值的元组。

Example

以下是一个使用 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

Adding Borders with the ImageOps.expand() function

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

PIL.ImageOps.expand(image, border=0, fill=0)
  1. image −用于扩展边框的图像。

  2. border −以像素为单位指定的要添加的边框宽度。它确定图像周围的边框将有多宽。默认值为 (0)。

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

Example

以下是一个使用 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