【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)
実行手順:
- 上記のソースコードをPythonファイルとして保存(例:resize_images.py)。
- リサイズしたい画像が保存されているフォルダのパスをfolder_path変数に、出力フォルダのパスをoutput_folder変数に指定する。
- リサイズ後のpx幅をtarget_width変数で指定する。
- ターミナルまたはコマンドプロンプトでコマンドを実行。
python resize_images.pyまたは
python3 resize_images.py出力フォルダ内に指定サイズの画像ファイルが作成される。



