私はたくさんの例をオンラインで読んでみましたが、imageio
がそのための完璧なパッケージであることがわかりました。 ここに書かれた例も見つかりました 。
私はちょうど示されているように例に従い、以下を試しました
import imageio as io
import os
file_names = sorted((fn for fn in os.listdir('.') if fn.startswith('surface')))
#making animation
with io.get_writer('surface.gif', mode='I', duration=0.5) as writer:
for filename in file_names:
image = io.imread(filename)
writer.append_data(image)
writer.close()
そして別の例。
images = []
for filename in file_names:
images.append(io.imread(filename))
io.mimsave('surface1.gif', images, duration = 0.5)
これらは両方とも機能しません。そして、基本的に私はgifの最初のフレームと瞬きを見て終了するだけです。継続時間は0.5秒に設定されているため、問題なく動作するはずです。ここで何かを逃していたのかもしれません。
これは私にとってはうまくいきます:
import os
import imageio
png_dir = '../saves/png/'
images = []
for file_name in os.listdir(png_dir):
if file_name.endswith('.png'):
file_path = os.path.join(png_dir, file_name)
images.append(imageio.imread(file_path))
imageio.mimsave('../saves/gif/movie.gif', images)
python 3.6.8の場合、誰かがそれを必要とする場合、fps
が必要です
imageio.mimsave('/path/file.gif',images,fps=55)