2013-10-03 1 views
16

के साथ images2gif.py में त्रुटि jpgs के अनुक्रम को बदलने के लिए त्रुटि करते समय त्रुटि प्राप्त करना। पैलेट जोड़ने का तरीका नहीं लग रहा है, या यदि यह वास्तविक समस्या है। images2gif.py मुख्य में numpy arrays का उपयोग करके लोड करने के लिए gifs प्राप्त करने में सक्षम था।ग्लोबलपलेट

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) 
इस के साथ

मैं निम्नलिखित त्रुटि मिलती है:

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

सुनिश्चित नहीं हैं कि इन jpgs के लिए एक पैलेट निर्दिष्ट करने का तरीका। दस्तावेज मेरे लिए अस्पष्ट है, और यह भी सुनिश्चित नहीं है कि यह मुद्दा है या नहीं। मदद?

+0

एक ही समस्या है। इससे पहले कि मैंने पिल्लो को पुनर्स्थापित करना पड़े, क्योंकि यह पीएनजी फाइलों के साथ काम करने के लिए आवश्यक कुछ निर्भरताओं को याद कर रहा था। –

उत्तर

27

images2gif.py परिवर्तन लाइन में 200:

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

धन्यवाद! यह मेरे लिए काम किया। – redgem

+4

यह मेरे लिए लाइन 426 पर होता है, मैंने अपना संस्करण पीआईपी – andrewtatham

+0

के माध्यम से प्राप्त किया है, मैंने gif उत्पन्न करने के लिए दो पीएनजी का उपयोग किया, जब मैंने यह परिवर्तन किया, तो छवि में से एक सादा रंग छवि बन गई। –

1

images2gif.py पैलेट प्राप्त करने के लिए PIL.GifImagePlugin से Getheader फ़ंक्शन का उपयोग करता है।

किसी कारण से, यह आपके द्वारा पढ़ी गई छवि के साथ काम नहीं करता है। हो सकता है कि स्क्रिप्ट वास्तव में काम नहीं करेगी अगर स्रोत छवियां 'पी' मोड नहीं हैं।

0

मैंने पिल्लो के बाद पीआईएल स्थापित किया और यह काम करना शुरू कर दिया। ऐसा लगता है कि कुछ कारणों से दोनों पुस्तकालयों की आवश्यकता है। यहाँ दोनों फिर से स्थापित करने के लिए कैसे है:

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

यह विश्वास करना मुश्किल है। पीआईएल और तकिया दोनों एक ही नाम, पीआईएल में स्थापित होते हैं - तो एक प्रोग्राम प्रोग्राम के लिए पुस्तकालयों के प्रतीकों का उपयोग करना संभव है? –

+0

और यदि यह सत्य है, तो यह पिल्लो में एक गंभीर बग है और उसे ट्रैक करने और रिपोर्ट करने की आवश्यकता है! तकिया निष्क्रिय पीआईएल प्रोजेक्ट का कांटा माना जाता है - अगर यह केवल तभी काम करता है यदि आप फिर (पुराने, टूटे हुए) पीआईएल को फिर से स्थापित करते हैं, तो कुछ गलत है। –

3

images2gif लेखक को

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

तकिया के लिए समर्थन छोड़ करने के लिए तैयार हो रहा है। इस सूत्र देखें: इस सूत्र से

https://code.google.com/p/visvis/issues/detail?id=81

भी, मैं उस स्क्रिप्ट है, जो मुझे (तकिया 2.4 के साथ) के साथ काम करता की एक निश्चित संस्करण नहीं मिला। यह यहां उपलब्ध है: https://github.com/rec/echomesh/blob/master/code/python/external/images2gif.py और किसी भी प्रकार के पीएनजी (पी मोड भी) के साथ अच्छी गुणवत्ता वाले जीआईएफ का उत्पादन करता है

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^