【Python】Pillow 複数の画像を一括でリサイズする方法

まくまく
まくまく
プラグラミング言語「PYTHON」を使ってみよう!!業務自動化・効率化の実例を踏まえ、解説できればと思っています。対象は、プログラムを学び始めた初心者向けとなります。今回はPillowを使用してフォルダに入っている画像のリサイズを一括で処理してみようと思います。



使用するのはPillow

使用するのは、画像処理ライブラリのPillow(PIL)です。ここではPillowがインストールされているのを前提として書き進めていきます。

Pillowの公式ドキュメントはこちらから(英語です。)

サンプルコード

from PIL import Image
import glob

img_files = glob.glob('*.jpg')

for file_name in img_files:

  im = Image.open(file_name)

  width = 100

  height = int(im.height * width / im.width)

  im_resized = im.resize((width, height), Image.LANCZOS)
  
  im_resized.save('resize100_'+str(file_name))

コメント

  • 「img_files = glob.glob(‘*.jpg’)」でフォルダに入っているJPGファイルを取得
  • 「for file_name in img_files:」で繰り返し処理
  • 「width = 100」でリサイズ。今回は100ピクセルとした
  • 「height = int(im.height * width / im.width)」で縦横の縮小率を設定
  • 「im_resized = 〜」でリサイズ実行
  • 「im_resized.save 〜」で名前を付けて保存

パスは指定していないので、リサイズしたい画像はプログラムと同じフォルダへ入れておく必要があります。

「width = 100」のところは任意の数値を入れてください。

注意:ファイルの拡張子は合わせておく必要があります。今回は「img_files = glob.glob(‘*.jpg’)」なのでファイルの拡張子は「.jpg」です。「.jpeg」では処理を実施しません。

出力


2枚の画像を一括で処理できました。枚数が多いと少し時間がかかるかもです。



タイトルとURLをコピーしました