2024年5月4日土曜日

Python で画像サイズを一括変換するコード

以下のコードは、Pillow というライブラリを使用して、現在のフォルダー内にある画像ファイルを、入力したサイズに一括して変換します。

Python
from PIL import Image
import os

# 変換後の画像サイズ (幅, 高さ)
target_width = 1280
target_height = 720

# 現在のフォルダー内の画像ファイルを取得
files = os.listdir()
for filename in files:
    # 拡張子をチェックして画像ファイルのみ処理
    if filename.endswith(('.jpg', '.jpeg', '.png', '.gif')):
        # 元画像を読み込む
        image = Image.open(filename)

        # 元画像の横幅と高さを取得
        original_width, original_height = image.size

        # 縦横比を維持したまま、変換後のサイズにリサイズ
        if original_width > original_height:
            base_size = (target_width, int(target_width * original_height / original_width))
        else:
            base_size = (int(target_height * original_width / original_height), target_height)

        image = image.resize(base_size, Image.ANTIALIAS)

        # 変換後の画像を保存
        new_filename = f"resized_{filename}"
        image.save(new_filename, quality=image.format_description[2])

        print(f"{filename}{new_filename} に変換しました。")

このコードの説明

  1. Pillow ライブラリのインポート: 最初に、画像処理ライブラリである Pillow をインポートします。
  2. 変換後の画像サイズの設定: target_widthtarget_height 変数に、変換後の画像の幅と高さを設定します。
  3. 現在のフォルダー内の画像ファイルの取得: os.listdir() 関数を使用して、現在のフォルダー内にあるすべてのファイル名を取得します。
  4. 画像ファイルの処理: ループを使用して、各ファイル名に対して以下の処理を行います。
    • ファイルの拡張子が画像ファイルかどうかを確認します。
    • 元画像を読み込みます。
    • 元画像の横幅と高さを取得します。
    • 縦横比を維持したまま、変換後のサイズにリサイズします。
    • 変換後の画像を保存します。
    • 変換処理が完了したことをコンソールに出力します。

コードの実行方法

  1. 上記のコードをエディタなどに保存します。
  2. ターミナルを開き、コードが保存されているフォルダーに移動します。
  3. 以下のコマンドを実行します。
python コードのファイル名.py

オプション

  • 変換後のファイル名を変更したい場合は、new_filename 変数を変更してください。
  • 画像の画質を維持したい場合は、save() メソッドの quality 引数に 100 を指定してください。
  • 複数のフォルダーにある画像を一括に変換したい場合は、os.walk() 関数を使用して、すべてのフォルダーを再帰的に処理してください。

注意事項

  • このコードはあくまで一例です。必要に応じて、コードを変更してください。
  • 変換後の画像は、元画像とは別のファイルとして保存されます。
  • 元画像は変更されません。

参考

その他

他に知りたいことはありますか? Pillow ライブラリの使い方や、画像処理に関するその他のことなど、なんでも聞いてください。

0 件のコメント:

コメントを投稿