Python PIL将图像结果组合成全黑图像

fig*_*r20 4 python python-imaging-library

我试图使用以下内容将三个图像合并为一个使用PIL和Python

import sys
from PIL import Image

images = map(Image.open, ['ib1.jpg', 'ib2.jpg', 'ib3.jpg'])
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.jpg')
Run Code Online (Sandbox Code Playgroud)

test.jpg图像似乎是正确的高度,但图像是完全黑色的.

有人可以帮忙吗?

kni*_*t42 5

2016-03-29编辑:

map在Python 3中返回一个生成器,它在zip函数调用中耗尽,因此生成器只在for循环中生成一个空列表.你可以改变

images = map(Image.open, ['ib1.jpg', 'ib2.jpg', 'ib3.jpg'])
Run Code Online (Sandbox Code Playgroud)

images = list(map(Image.open, ['ib1.jpg', 'ib2.jpg', 'ib3.jpg']))
Run Code Online (Sandbox Code Playgroud)

它应该按预期工作.

较旧的帖子:

我已经在我的机器上进行了测试,似乎在Python 2(我的机器上的2.7.11)中执行的相同代码按预期工作,但Python 3(3.5.1)却没有.我在弄清楚为什么.