2016-03-29 68 views
2

我嘗試使用以下三種圖像合併成一個使用PIL和PythonPython的PIL組合圖像導致全黑圖像

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') 

的test.jpg放在圖像似乎是正確的高度,但圖像是完全黑色的。

任何人都可以幫忙嗎?

+0

你可以發佈你正在使用的實際三個圖像? –

回答

1

2016年3月29日編輯:

map在Python 3返回一個生成器,它有你的zip函數調用耗盡,所以發電機只需在您的for循環產生一個空列表。 您可以更改

images = map(Image.open, ['ib1.jpg', 'ib2.jpg', 'ib3.jpg']) 

images = list(map(Image.open, ['ib1.jpg', 'ib2.jpg', 'ib3.jpg'])) 

,你期望它應該工作。

較早的帖子:

我已經在我的機器上測試它似乎是(我的機器上2.7.11)在Python 2執行相同的代碼工作,你希望但是Python 3(3.5.1)不要」噸。我正在弄清楚爲什麼。

+0

謝謝,現在在Python 3上效果很好 – fightstarr20