2016-10-09 11 views
5

命令はを読んために配列決定された画像(例えば、アニメーションGIFなど、アイコンファイル、)Wand docsで十分に単純です:Wandを使ってPythonでアニメーションgifを作成するにはどうすればよいですか?

>>> from wand.image import Image 
>>> with Image(filename='sequence-animation.gif') as image: 
...  len(image.sequence) 

...しかし、私はを作成するかどうかはわかりません1。

ルビーでRMagickを使用すると簡単です。これはImageListです。 (例えばmy gistを参照してください。)

私は(「コンテナ」として)Imageを作成し、画像パスで各SingleImageをインスタンス化しようとしたが、私は特にSingleImage doesnのためのコンストラクタドキュメンテーションいるので、それは間違っているかなり確信していますエンドユーザが使用するように探します。

また、wand.sequence.Sequenceを作成してその角度から行ってみましたが、デッドエンドもヒットしました。私はとても失われていると感じます。

+0

私の質問はのためhttp://stackoverflow.com/questions/17394869/writing-animated-gif-using-wand-and-imagemagick?rq=1 – Dominick

+0

のデュープになりそうです好奇心をそそられた人たちは、以下のように答えてくれた@ emcconvilleのおかげで、私はそれが欲しいものとしてうまくいった。https://gist.github.com/dguzzo/cecc2ef8b8b520af3dc40e209eadc183 – Dominick

答えて

4

最良の例は、コードとともに出荷される単体テストにあります。たとえばwand/tests/sequence_test.py

ワンドを使用してアニメーションGIFを作成するには、画像をシーケンスにロードしてから、すべてのフレームがロードされた後に追加の遅延/最適化処理を設定することを忘れないでください。

from wand.image import Image 

with Image() as wand: 
    # Add new frames into sequance 
    with Image(filename='1.png') as one: 
     wand.sequence.append(one) 
    with Image(filename='2.png') as two: 
     wand.sequence.append(two) 
    with Image(filename='3.png') as three: 
     wand.sequence.append(three) 
    # Create progressive delay for each frame 
    for cursor in range(3): 
     with wand.sequence[cursor] as frame: 
      frame.delay = 10 * (cursor + 1) 
    # Set layer type 
    wand.type = 'optimize' 
    wand.save(filename='animated.gif') 

output animated.gif

+0

cool、thanks @emcconville;私はそれらの単体テストを見ていたはずです! – Dominick

関連する問題