以下のコードは、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} に変換しました。")
このコードの説明
- Pillow ライブラリのインポート: 最初に、画像処理ライブラリである Pillow をインポートします。
- 変換後の画像サイズの設定:
target_width
とtarget_height
変数に、変換後の画像の幅と高さを設定します。 - 現在のフォルダー内の画像ファイルの取得:
os.listdir()
関数を使用して、現在のフォルダー内にあるすべてのファイル名を取得します。 - 画像ファイルの処理: ループを使用して、各ファイル名に対して以下の処理を行います。
- ファイルの拡張子が画像ファイルかどうかを確認します。
- 元画像を読み込みます。
- 元画像の横幅と高さを取得します。
- 縦横比を維持したまま、変換後のサイズにリサイズします。
- 変換後の画像を保存します。
- 変換処理が完了したことをコンソールに出力します。
コードの実行方法
- 上記のコードをエディタなどに保存します。
- ターミナルを開き、コードが保存されているフォルダーに移動します。
- 以下のコマンドを実行します。
python コードのファイル名.py
オプション
- 変換後のファイル名を変更したい場合は、
new_filename
変数を変更してください。 - 画像の画質を維持したい場合は、
save()
メソッドのquality
引数に 100 を指定してください。 - 複数のフォルダーにある画像を一括に変換したい場合は、
os.walk()
関数を使用して、すべてのフォルダーを再帰的に処理してください。
注意事項
- このコードはあくまで一例です。必要に応じて、コードを変更してください。
- 変換後の画像は、元画像とは別のファイルとして保存されます。
- 元画像は変更されません。
参考
- Pillow ドキュメント: https://pillow.readthedocs.io/en/stable/
- Python で画像サイズを変更する方法: [無効な URL を削除しました]
- Pythonで画像を一括リサイズ(拡大・縮小): https://sgs-prog.com/python-image-size-change/
その他
他に知りたいことはありますか? Pillow ライブラリの使い方や、画像処理に関するその他のことなど、なんでも聞いてください。
0 件のコメント:
コメントを投稿