详解使用Python-Pillow填充图像

  • Post category:Python

使用Python的Pillow库对图像进行填充是一项非常方便的任务。Pillow是Python Imaging Library的一个分支,它提供了一系列的图像处理工具,特别是处理常见的图像格式(如JPEG、PNG、BMP等)。

下面是使用Python-Pillow填充图像的完整攻略。

1. 安装Pillow

在命令行或终端中运行以下命令:

pip install Pillow

2. 加载图像

使用Pillow操作图像需要从文件中加载图像。以下代码示例演示如何从文件中加载图像:

from PIL import Image

img = Image.open('image.jpg')

在上面的代码中,我们导入Pillow的Image模块,并使用Image.open方法加载名为“image.jpg”的图像文件。请注意,如果需要的话,你还可以使用其他类型的图像文件,如PNG。

3. 填充图像

在我们对图像进行填充之前,我们需要确定填充后的图像的大小和颜色。以下代码演示如何创建一个新的填充图像:

from PIL import Image

img = Image.open('image.jpg')
width, height = img.size
color = (255, 255, 255)
new_width, new_height = width + 100, height + 100

new_img = Image.new('RGB', (new_width, new_height), color)

在上面的代码中,我们使用Image.new方法创建一个名为“new_img”的新图像,指定了其大小和颜色。新图像的宽和高是原始图像的宽和高加上100。我们使用RGB颜色模式,将其填充为白色(RGB值为(255, 255, 255))。

4. 将原始图像粘贴到新图像中

现在,我们已经创建了一个填充图像,接下来的任务是将原始图像粘贴到新图像中。以下代码演示了如何完成这个任务:

from PIL import Image

img = Image.open('image.jpg')
width, height = img.size
color = (255, 255, 255)
new_width, new_height = width + 100, height + 100

new_img = Image.new('RGB', (new_width, new_height), color)
new_img.paste(img, (50, 50))

new_img.save('new_image.jpg')

在上面的代码块中,我们使用Image.paste方法将原始图像粘贴到新图像的指定位置(这里是(50, 50))。然后我们保存填充图像,所以我们使用Image.save方法。

示例1: 在图像周围添加白色边框

以下代码示例演示如何在图像周围添加白色边框:

from PIL import Image

img = Image.open('image.jpg')
width, height = img.size
color = (255, 255, 255)
border_size = 50
new_width, new_height = width + border_size*2, height + border_size*2

new_img = Image.new('RGB', (new_width, new_height), color)
new_img.paste(img, (border_size, border_size))

new_img.save('new_image.jpg')

在上述示例中,我们设置了一个50像素的边框,并且将原始图像向右、向下平移了50个像素的位置(即左上角在50,50的位置),从而在图像周围添加了白色的边框。

示例2: 在图像顶部添加文本

以下代码示例演示如何在图像顶部添加文本:

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

img = Image.open('image.jpg')
width, height = img.size
color = (255, 255, 255)
text = "Hello, Pillow"
font_size = 50

font = ImageFont.truetype('arial.ttf', font_size)
text_width, text_height = font.getsize(text)

new_width, new_height = width, height + text_height + 10
new_img = Image.new('RGB', (new_width, new_height), color)

draw = ImageDraw.Draw(new_img)
text_x, text_y = (new_width-text_width)//2, height+5
draw.text((text_x, text_y), text, font=font, fill=(0,0,0))

new_img.paste(img, (0, 0))

new_img.save('new_image.jpg')

在上述示例中,我们使用ImageFont.truetype方法指定了文本的字体和字号。我们通过ImageDraw.Draw方法创建了一个绘制对象,使用draw.text方法绘制文本。完成后我们使用Image.paste方法将图像粘贴到新图像的左上角。

在文本绘制完成后,我们使用text_widthtext_height计算出了新图像的高度,并将其与原始图像的宽度组成新图像的大小。最后,我们将原始图像粘贴到新图像的左上角,并将填充图像保存到磁盘上。

以上是使用Python-Pillow进行图像填充的攻略,我们使用了Pillow的Image、ImageDraw和ImageFont模块完成了新图像的创建、粘贴和文本绘制。我们还演示了两个示例,分别是在图像周围添加白色边框和在图像顶部添加文本。