【Python 3】pillowライブラリでフォルダ内の画像を一括で指定のpx幅へリサイズする

Pythonによる画像リサイズ処理のスクリプト

Pillow というライブラリを使用して、指定フォルダ内のすべての画像を指定した幅(縦横比を固定)にリサイズするPythonスクリプトを作成した。

環境: Python 3.9.6, pillow 10.4.0

Pillowライブラリをインストール

pip install Pillow

 

実装内容

from PIL import Image
import os

def resize_images_in_folder(folder_path, output_folder, target_width):
    # フォルダが存在しない場合は作成する
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 対象フォルダ内のすべてのファイルを取得
    for filename in os.listdir(folder_path):
        # 画像ファイルを対象とする
        if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
            img_path = os.path.join(folder_path, filename)
            img = Image.open(img_path)

            # 元の画像サイズを取得
            original_width, original_height = img.size

            # 幅の比率に基づいて新しい高さを計算
            aspect_ratio = original_height / original_width
            target_height = int(target_width * aspect_ratio)

            # アスペクト比を維持したまま指定の幅でリサイズ
            img = img.resize((target_width, target_height), Image.LANCZOS)

            # 保存先のパスを作成
            output_path = os.path.join(output_folder, filename)
            img.save(output_path)

            print(f'Resized and saved: {output_path}')

folder_path = 'input_images'  # 元の画像が保存されているフォルダ
output_folder = 'output_images'  # リサイズ後の画像を保存するフォルダ
target_width = 800  # リサイズ後の幅

resize_images_in_folder(folder_path, output_folder, target_width)

 

実行手順:

  1. 上記のソースコードをPythonファイルとして保存(例:resize_images.py)。
  2. リサイズしたい画像が保存されているフォルダのパスをfolder_path変数に、出力フォルダのパスをoutput_folder変数に指定する。
  3. リサイズ後のpx幅をtarget_width変数で指定する。
  4. ターミナルまたはコマンドプロンプトでコマンドを実行。
python resize_images.py

または

python3 resize_images.py

出力フォルダ内に指定サイズの画像ファイルが作成される。

Follow me!