【Python】Pillowで画像を比率指定で一括リサイズする
画像の一括リサイズ
カメラで撮影した画像などはサイズが大きくそのままでは扱いづらいです。画像の解像度を下げることでファイルサイズが小さくなり私の持っている非力なPCでも編集等行いやすくなります。 前回は画像の縦横ピクセル数を絶対値で指定することで一括リサイズしました。
今回は縦横を圧縮する比率で指定し一括リサイズしていきます。
作成したプログラム
わかりやすいようプログラム中にコメントを入れました。 フォルダ構成は下記のとおりです。
resize │ resize.py │ └─img 512x512org.jpg
プログラム:
import os import glob from PIL import Image # imgフォルダにある.jpgファイルリストをすべて取得 img_files = glob.glob('img/*.jpg') # 縦横をいくつで割るか proportion = 2 # 取得したすべての.jpgファイルに対して処理を実行 for f in img_files: # PILで画像を開く img = Image.open(f) # imgのwidthとheightをproporionで割りリサイズしたimg_resizeを生成 img_resize = img.resize((int(img.width/proportion),int(img.height/proportion))) # 保存するためのファイル名等を処理する fname, fext = os.path.splitext(f) # 保存場所とファイル名拡張子までsaveに渡す f_output = fname + '_resize'+ str(proportion) + fext img_resize.save(f_output) # 実行結果をprint出力 print(f + "\t----->\t" + f_output)
WordやPowerPointに貼り付けることを考えて、画像はいつも圧縮したものも保存するようにしています。