2016-03-29 19 views
2

PIL ve PythonPython PIL bir bütün siyah görüntüde görüntüleri sonuçlarını birleştirmek

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 resmin doğru yükseklik gibi görünüyor

ancak kullanarak birine üç görüntüleri birleştirmek için aşağıdaki kullanmaya çalışıyorum görüntü tamamen siyah.

Herkes yardımcı olabilir mi?

+0

Kullandığınız üç görüntüyü kaydeder misiniz? –

cevap

1

2016-03-29 Düzenleme: Python 3'te

map bir jeneratör döner, ve o zip işlev çağrısında bitkin var, bu yüzden jeneratör sadece döngü içinde boş bir listesini oluşturur. beklediğiniz gibi çalışması gerekir

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

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

için değiştirebilirsiniz.

Yaşlı sonrası: benim makinede test ettik ve bunu beklediğini ancak Python 3 (3.5.1) don olarak (benim makinede 2.7.11) Python 2 idam aynı kod çalışıyor görünüyor

' t. Nedenini anlıyorum.

+0

Teşekkür ederim, şimdi Python 3 üzerinde harika çalışıyor – fightstarr20