14

images2gif.py を使用してアニメーション GIF を生成しようとしています (最新のバージョンに貼り付けます: bit.ly/XMMn5h )。

私はこのPythonスクリプトを使用しています:

__author__ = 'Robert'
from images2gif import writeGif
from PIL import Image
import os

file_names = sorted((fn for fn in os.listdir('.') if fn.endswith('.gif')))
#['animationframa.png', 'animationframb.png', ...] "

images = [Image.open(fn) for fn in file_names]

size = (150,150)
for im in images:
    im.thumbnail(size, Image.ANTIALIAS)

print writeGif.__doc__

filename = "my_gif.GIF"
writeGif(filename, images, duration=0.2)

ただし、次のエラーが発生します。

File "C:\Python27\lib\images2gif.py" , line 418, in writeGifToFile
globalPalette = palettes[ occur.index(max(occur)) ] ValueError: max() 
arg is an empty sequence

私には発生が空のようです。何が問題なのですか? より良い方法はありますか?

4

3 に答える 3

5

2 つの異なるマシンで正確なコードをテストしましたが、両方で完全に動作します。1 台のマシンは Ubuntu 12.04 で、もう 1 台は Windows XP を実行しています。どちらも Python 2.7 と、ここからダウンロードしたimages2gif の最新バージョンを使用しています。次のことをお勧めします。

  1. 使用している Python とライブラリのバージョンを確認し、最新のものを入手してみてください。
  2. 別のマシンでテストする
  3. Pythonとすべてのライブラリを試してアンインストールし、再インストールしてみてください
于 2012-10-24T05:40:41.620 に答える
0

リストコンストラクターで

    (fn for fn in os.listdir('.') if fn.endswith('.gif'))

末尾は大文字と小文字が区別されるため、たまたますべての GIF 画像がある場合、それらは検出されず、

    ValueError: max() arg is an empty sequence

エラー。

使用することをお勧めします

    (fn for fn in os.listdir('.') if fn.endswith('.gif') or fn.endswith('.GIF'))

これで成功するために。また、アニメーション gif ファイルを親 (または少なくとも別の) ディレクトリに作成することをお勧めします。

于 2016-03-03T01:15:12.033 に答える