44

我想将 4 张 PNG 图像合并到一个 PNG 文件中。我知道谁将它们与 Image.paste 方法结合起来,但我无法创建保存输出文件!实际上,我想要一个 *m 空 PNG 文件,并用来组合我的图像。我需要指定文件大小,否则我不能使用粘贴方法。

4

3 回答 3

65
from PIL import Image
image = Image.new('RGB', (n, m))
于 2012-10-06T13:57:51.660 回答
60

您可以使用该方法PIL.Image.new()创建图像。但默认颜色为黑色。要制作全背景的空图像,您可以使用以下代码对其进行初始化:

from PIL import Image
img = Image.new("RGB", (800, 1280), (255, 255, 255))
img.save("image.png", "PNG")

它创建一个大小为 800x1280 的图像,带有白色背景。

于 2017-06-04T02:30:24.910 回答
2

你对哪个部分感到困惑?您可以通过执行来创建新图像Image.new,如文档中所示。无论如何,这是我很久以前编写的一些代码,用于在 PIL 中将多个图像合并为一个。它将它们全部放在一行中,但您明白了。

max_width = max(image.size[0] for image in images)
max_height = max(image.size[1] for image in images)

image_sheet = Image.new("RGBA", (max_width * len(images), max_height))

for (i, image) in enumerate(images):
    image_sheet.paste(image, (
        max_width * i + (max_width - image.size[0]) / 2,
        max_height * 0 + (max_height - image.size[1]) / 2
    ))

image_sheet.save("whatever.png")
于 2012-10-06T14:02:22.870 回答