使用Python合并图像

时间:2019-04-08 10:33:27

标签: python

我正在尝试将图像与python合并,但是出于总和的原因,结果图像总是来自木板。

from PIL import Image

images = map(Image.open, ['0.png', '1.png', '2.png', '3.png', '/4.png', '5.png', '6.png', '7.png'])

widths, heights = zip(*(i.size for i in images))

total_width = sum(widths)
max_height = max(heights)

new_im = Image.new('RGB', (total_width, max_height))

x_offset = 0

for im in images:
   new_im.paste(im, (x_offset,0))
   x_offset += im.size[0]

new_im.save('test.png')

1 个答案:

答案 0 :(得分:0)

问题是map,它创建了迭代器images,并且迭代器只能使用一次,即。一for中。之后,它认为没有更多图像,并且第二个for不起作用。

然后在两个images循环中使用for

首先(它可以正常工作):

zip(*(i.size for i in images))

第二(它看到空列表)

for im in images:

您必须使用list()来创建可以与许多for循环一起使用的真实列表

images = list(map(...))