フォルダ内の全画像の縮小版を生成するPythonスクリプト

やあ子供たち。
今日はおじさんはフォルダ内の全画像の画像サイズを、ちょっと大きすぎたので小さくして、それで置き換えたいと思ったことがあった。じゃそういうのはpythonあたりで数行で作ってしまうのが楽でしょうと。というわけでそういうのを作ったからメモだ。
python の3.9あたりは入っているとして、まずは以下のような下準備をしたよ。

pip install opencv-python

続いて以下のようなコードを作成した。短く書けたね。短く書けると思ったからpythonにしたんだけど、それにしても短すぎるっっ!!!

import os
import cv2
import numpy as np
from pathlib import Path

input_path="d:/_melt2/"
for filename in os.listdir( input_path ):
  # ファイルではなくフォルダなどであれば飛ばす
  if not os.path.isfile(input_path+filename):
    continue
  
  print(filename,end=" ")
  img = cv2.imread(input_path+filename, cv2.IMREAD_COLOR)
  # 画像サイズを取得、表示
  height, width = img.shape[:2]
  print( str(width) + ", "+ str(height))
  # 画像リサイズを実行
  new_img = cv2.resize( img, dsize=None, fx=0.5,fy=0.5 )
  # 出力用フォルダがなければ作成
  Path(input_path+"out/").mkdir(parents=True, exist_ok=True)
  # リサイズした画像を出力用フォルダに同じファイル名の画像として出力
  cv2.imwrite(input_path+"out/"+filename, new_img)
  

はい、これは、input_pathに指定したフォルダ内にある全画像を、さらにその中にoutという名前のフォルダを作って、同じファイル名の縮小版を作成してくれるんだ。わかりやすくていいね。便利な場合もあるしね。いいなこういうシンプルで便利なのはすきだな。
いろいろ簡単に書けてシンプルに実装できる。しかもOpenCVがその裏にある。。本当にpythonて、、恐ろしい子
チャオ!