2013-10-03 16 views
16

Jpg'lerin sırasını giflere dönüştürmeye çalışırken bir hatayla karşılaşırsınız. Bir paletin nasıl ekleneceğini anlayamıyorum ya da asıl sorun buysa. images2gif.py ana sayfasındaki numpy dizilerini kullanarak yüklenecek gifleri elde edebildi. BununlaGlobalPalette ile images2gif.py dosyasındaki hata

import PIL 
from PIL import Image 
import StringIO 
import images2gif 

images = [] 
for frame in animation1.frames: 
    img_data = s3manager.get_file_as_string(frame.s3_filename) 
    image = Image.open(StringIO.StringIO(img_data)) 
    images.append(image) 

images2gif.writeGif('lala3.gif', images, duration=0.5, dither=0) 

aşağıdaki hatayı alıyorum:

"images2gif.py", line 436, in writeGifToFile 
    fp.write(globalPalette) 
TypeError: must be string or buffer, not None 

bu jpgs için bir palet nasıl belirleneceğini Emin değilim. Belgeleme bana açık değil ve bu sorun olsa bile emin değilim. yardım et?

+0

Aynı sorunu yaşayın. Yastık yeniden yüklemeden önce benim için çalıştı çünkü PNG dosyaları ile çalışmak için gereken bazı bağımlılıkları eksikti. –

cevap

27

200:

for im in images: 
    palettes.append(getheader(im)[1]) 

for im in images: 
    palettes.append(im.palette.getdata()[1]) 
+1

Teşekkür ederiz! Bu benim için çalıştı. – redgem

+4

Bu benim için 426 satırında gerçekleşir, – andrewtatham

+0

pip'le versiyonum elde ettim, gif oluşturmak için iki png kullandım, bu değişiklikleri yaptıktan sonra, görüntülerden biri düz renkli görüntü haline gelir. –

1

images2gif.py paletleri almak için PIL.GifImagePlugin öğesinden getheader işlevini kullanır.

Bazı nedenlerden dolayı okuduğunuz görüntü ile çalışmaz. Belki de kaynak görüntüler 'P' modu değilse, betik gerçekten çalışmaz.

0

Yastıkdan sonra PIL'yi yükledim ve çalışmaya başladı. Her iki kütüphane de bir nedenden dolayı ihtiyaç duyuyor gibi görünüyor. İşte hem yeniden nasıl: images2gif.py değişikliği doğrultusunda

pip uninstall PIL 
pip uninstall Pillow 
pip install Pillow 
pip install PIL 
+0

İnanılması zor bir şey. PIL ve Yastık her ikisi de aynı isme, PIL - yüklenir, bu yüzden bir uygulama programının her iki kütüphaneden de sembolleri kullanması nasıl mümkün olur? –

+0

Ve eğer bu doğruysa, o zaman bu Yastık'da ciddi bir hatadır ve takip edilmeli ve rapor edilmelidir! Yastık inaktif PIL projesinin bir çatalı olması gerekiyordu - eğer sadece (eski, bozuk) PIL'i tekrar yüklerseniz çalışır, sonra bir şeyler yanlıştır. –

İlgili konular