前提・実現したいこと
フォルダ内のすべての画像を3分割して別のフォルダに保存したいです。
フォルダに10枚の画像があるなら、30枚の画像が別のフォルダに保存されているようにしたいです。
元のフォルダ名:pictures
フォルダの中身:「(日付).jpg」という名の画像が20枚程度
新しいフォルダ名:pictures_divided
発生している問題・エラーメッセージ
FileNotFoundError: [Errno 2] No such file or directory: 'pictures_divided\pictures\0101_1.JPG'
該当のソースコード
Python
1from PIL import Image 2import glob 3import os 4 5#指定されたディレクトリ内の画像を三分割して新しいフォルダに保存する関数 6def divide3(dir,new_dir): 7 path_list=glob.glob(dir+'/*') #指定されたディレクトリ内のすべてのファイルを取得 8 name_list=[] 9 ext_list=[] 10 11 os.makedirs(new_dir, exist_ok=True) 12 13 for i in path_list: 14 im = Image.open(i) 15 name,ext = os.path.splitext(i) 16 name_list.append(name) 17 ext_list.append(ext) 18 19 im_crop_1=im.crop((500,600,4000,1300)) 20 im_crop_2=im.crop((500,1300,4000,2000)) 21 im_crop_3=im.crop((500,2000,4000,2700)) 22 23 im_crop_1.save(os.path.join(new_dir,name+'_1'+ext)) 24 im_crop_2.save(os.path.join(new_dir,name+'_2'+ext)) 25 im_crop_3.save(os.path.join(new_dir,name+'_3'+ext)) 26 27 return 28 29divide3("pictures","pictures_divided")
試したこと
以下のソースコードで、「0101.jpg」という画像1枚から「0101_1.jpg」「0101_2.jpg」「0101_3.jpg」という画像を3枚作り、「pictures_divided」というフォルダに保存できました。
Python
1from PIL import Image 2import os 3 4def divide3(picture,new_dir): 5 6 os.makedirs(new_dir, exist_ok=True) 7 8 name_list=[] 9 ext_list=[] 10 im = Image.open(picture) 11 name,ext = os.path.splitext(picture) 12 name_list.append(name) 13 ext_list.append(ext) 14 15 im_crop_1=im.crop((500,600,4000,1300)) 16 im_crop_1.save(os.path.join(new_dir,name+'_1'+ext)) 17 18 im_crop_2=im.crop((500,1300,4000,2000)) 19 im_crop_2.save(os.path.join(new_dir,name+'_2'+ext)) 20 21 im_crop_3=im.crop((500,2000,4000,2700)) 22 im_crop_3.save(os.path.join(new_dir,name+'_3'+ext)) 23 24 25 return 26 27divide3('0101.jpg','pictures_divided')
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。