前提・実現したいこと
フォルダ内の「in-000.png」から始まる50枚の画像を一括で読み込み、指定したサイズでクロップ、各ファイル名を「out-000.png」にリネーム(連番部分は変更しない)、別フォルダに保存したいです。
Python歴1週間です。
どうか下記の問題が起きている原因と解決策を分かりやすく教えていただけないでしょうか。
発生している問題・エラーメッセージ
別フォルダが作成され、フォルダ内にファイルが作られますが、そのファイルの様子が変です。
望んでいるのは「out-000.png」から「out-049.png」の50個の画像ファイルですが、「out-{0」というファイルが1個あるのみです。
for文に問題があると踏んでいます。
該当のソースコード
Python
1import os 2import glob 3from PIL import Image 4 5in_dir = "/Users/images" 6out_dir = "/Users/edited images" 7os.makedirs(out_dir, exist_ok=True) 8 9assert(os.path.exists(in_dir)), "directory '{}' not found".format(in_dir) 10for path in glob.glob(in_dir + "/*.png"): 11 in_img = Image.open(path) 12 13 box = (700, 700, 1500, 2100) 14 out_img = in_img.crop(box) 15 16 save_path = os.path.join(out_dir, 'out-' + '{0:03d}' + '.png') 17 out_img.save(save_path)
Python
1for i, path in glob.glob(in_dir + "/*.png"): 2 in_img = Image.open(path) 3 4 box = (700, 700, 1500, 2100) 5 out_img = in_img.crop(box) 6 7 save_path = os.path.join(out_dir, 'out-' + '{0:03d}'.format(i) + '.png') 8 out_img.save(save_path)
試したこと
・1つ目のコードについて
https://teratail.com/questions/183726
こちらの質問に対する回答をベースにコードを書きました。
・2つ目のコードについて
1つ目のfor文部分を抜き出しています。
for文に問題があると考えたので、うまく回るようにiを追加し、ファイル名の指定にformat(i)を追加しました。
エラーが表示され、「ValueError: too many values to unpack (expected 2)」とのことです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。