前提・実現したいこと
カレントディレクトリにJPG画像を含んだフォルダがあり、そのフォルダごとのGIF画像を一括で作りたいです。
一つのフォルダ内のJPG画像群からGIF画像を創る関数を定義して、カレントディレクトリ内の全部のフォルダでforループすることを考えたのですが、うまくいきません。
エラーは出ないですが、ループしてるはずなのに、”{cap}”という一つのGIFファイルしか出力されません。
初歩的な質問で申し訳ありません…
よろしくお願いいたします。
該当のソースコード
python
1# GIFアニメーションを作成 2def create_gif(in_dir, out_filename): 3 path_list = sorted(glob.glob(os.path.join(*[in_dir, '*']))) # ファイルパスをソートしてリストする 4 imgs = [] # 画像をappendするための空配列を定義 5 6 # ファイルのフルパスからファイル名と拡張子を抽出 7 for i in range(len(path_list)): 8 img = Image.open(path_list[i]) # 画像ファイルを1つずつ開く 9 imgs.append(img) # 画像をappendで配列に格納していく 10 11 # appendした画像配列をGIFにする。durationで持続時間、loopでループ数を指定可能。 12 imgs[0].save(out_filename, 13 save_all=True, 14 append_images=imgs[1:], 15 optimize=False, 16 duration=50, 17 loop=0) 18 19cur_dir = os.getcwd() # カレントディレクトリ取得 20dirs = os.listdir(cur_dir) # 指定ディレクトリ内に存在するファイル、フォルダをリスト化 21 22for cap in dirs: 23 create_gif(in_dir = cap, out_filename = '{cap}.gif')
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/05 11:17
2021/10/05 11:21
2021/10/05 11:31
2021/10/05 11:41
2021/10/05 11:42
2021/10/06 03:30
2021/10/06 06:02
2021/10/06 07:00
2021/10/06 07:11
2021/10/06 08:48
2021/10/06 11:49
2021/10/07 01:13