Python | 「pathlib + Pillow」でフォルダ内の画像を一括リサイズする実践例

Python
スポンサーリンク

では 「pathlib + Pillow」でフォルダ内の画像を一括リサイズする実践例 を紹介しますね。これを使えば、例えば「大きな写真を全部まとめてサムネイル化する」といった処理が一気にできます。


必要な準備

  • Python に Pillow をインストールしておきます pip install pillow

サンプルコード

from pathlib import Path
from PIL import Image

# 入力フォルダと出力フォルダを指定
input_dir = Path.home() / "Pictures" / "originals"
output_dir = Path.home() / "Pictures" / "resized"

# 出力フォルダがなければ作成
output_dir.mkdir(exist_ok=True)

# リサイズ後のサイズ(幅×高さ)
size = (300, 300)

# jpg と png を対象に処理
for img_path in input_dir.glob("*.[jp][pn]g"):  # jpg, jpeg, png をまとめて対象
    with Image.open(img_path) as img:
        # サムネイルを作成(アスペクト比を保ったまま縮小)
        img.thumbnail(size)

        # 出力先のパスを作成
        save_path = output_dir / img_path.name

        # 保存
        img.save(save_path)
        print(f"リサイズ完了: {save_path}")
Python

コードのポイント

  • Path.glob("*.jpg") で拡張子を指定して検索
  • img.thumbnail(size)縦横比を保ったまま縮小
  • 出力フォルダを mkdir(exist_ok=True) で自動作成
  • 元のファイル名をそのまま使って保存

実行イメージ

  • 入力フォルダ: ~/Pictures/originals photo1.jpg photo2.png photo3.jpeg
  • 出力フォルダ: ~/Pictures/resized photo1.jpg (300px以内に縮小) photo2.png (300px以内に縮小) photo3.jpeg (300px以内に縮小)

まとめ

  • pathlib でパス操作をシンプルに
  • Pillow で画像を開いてリサイズ
  • フォルダ内の画像を一括処理できる

これを応用すれば「一括で画像形式を変換(例: PNG → JPG)」や「ウォーターマークを追加」なんかもできます。

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました