我正在尝试将图像与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')
答案 0 :(得分:0)
问题是map
,它创建了迭代器images
,并且迭代器只能使用一次,即。一for
中。之后,它认为没有更多图像,并且第二个for
不起作用。
然后在两个images
循环中使用for
首先(它可以正常工作):
zip(*(i.size for i in images))
第二(它看到空列表)
for im in images:
您必须使用list()
来创建可以与许多for
循环一起使用的真实列表
images = list(map(...))