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
出力フォルダ内に指定サイズの画像ファイルが作成される。