備忘録やOUTPUT的な意味での蓄積(一気に作った系はこれで終わり)
#作成目的
作業用のサイズをすべて変換したいときが定期的に起こったので、作業簡略化のために作成
#作成環境
・windows10
・Anaconda3
・python3.7
・Jupyter Notebook
#ドキュメント
①resizeしたいフォルダー名を入力(png_folderの一つ上のディレクトリ)
②folderがなければcurrent_folder内に、resize_folder を作成する
③幅と高さを指定し、画像をリサイズ(入力をしなかった場合Errorになる)
④すでに同じフォルダー名がある場合、誤操作を防ぐためにErrorになる
#ライブラリの読み込み
All Necessary Libraries.py
import numpy as np
import os
import pathlib
from pathlib import Path
from glob import glob
from PIL import Image
from tqdm import tqdm
#PG
image_resize_code
# フォルダ名を入力
folder_name = input('Enter the folder name :')
# pathを取得
p = Path('C:/Users/H3051411/OUT/' + folder_name + '/_png_folder')
new_folder_name = '_resize_folder'
new_folder_path = os.path.join(p, new_folder_name)
# 新しいpathを取得
new_p = Path(new_folder_path)
# フォルダーが存在しない場合リサイズ処理を行う
if not os.path.exists(new_folder_path):
# 新規フォルダーの作成
os.makedirs(new_folder_path)
# 幅と高さの指定
width = int(input('withsize_input: '))
height = int(input('height_size_input: '))
# ファイルをリストで取得
files = list(p.glob('*.*'))
# リサイズ処理
for f in tqdm(files):
# 画像ファイルを取得
img = Image.open(f)
# 最高品質でリサイズ処理
img_resize = img.resize((width, height), Image.LANCZOS)
# ファイル名を取得
imgname = os.path.basename(f)
# print(imgname) # 確認用
# 新規ファイル名を設定
newfname ='resize_' + imgname
# print(newfname) # 確認用
# ファイルを保存する(path指定)
img_resize.save(new_p/newfname)
else:
# ファイルが存在する場合Errorを返す
print('Error:resize_folderはすでに存在しています.')
課題
・関数化していない
・画像数が増えると時間かかりそう(未テスト)
まとめ
作業時間が1時間から1分になりました。
あと、もっといい書き方がある気がする。