画像ファイルのサイズをリサイズしたい場合の基本的なやり方については以下にて説明しました。
実際に画像データのサイズをリサイズする場合によくあるのは、1つ1つリサイズするのではなくまとめてリサイズしたい、どこかのフォルダに画像ファイルをすべて入れておいて一気にリサイズしたい、ようなことではないかと思います。
そこで今回は、Pythonにてフォルダ内のある型式の画像ファイルをまとめてリサイズする場合のやり方について説明したいと思います。
以下が、同じフォルダ内にあるすべてのPNGファイルを洗い出して、あるサイズ(2778*1284)に変換する場合のコードの例になります。
2778,1284の箇所を変えれば任意のサイズに変換可能です。
import os
import glob
from PIL import Image
dst_dir = 'images_half'
os.makedirs(dst_dir, exist_ok=True)
files = glob.glob('./*.png')
for f in files:
img = Image.open(f)
img_resize = img.resize((2778, 1284))
root, ext = os.path.splitext(f)
basename = os.path.basename(root)
img_resize.save(os.path.join(dst_dir, basename + '_half' + ext))
以下、簡単な説明になります。
1~3行目では必要なライブラリをインポートしています。
4,5行目で書き込み先のフォルダ名を「image_half」に設定して、カレントディレクトリにフォルダ(ディレクトリ)を作成しています。
6行目でカレントディレクトリのPNGファイルをすべて「files」に読み込んでいます。
7行目からのforループでは、「files」内のファイルの数だけ繰り返しています。
8行目で1つずつファイルを「img」に読み込んで、9行目でサイズを2778*1284にリサイズしています。
9行目ではファイル名の拡張子以外の部分と拡張子に分けてそれぞれroot,extに入れています。
10行目では拡張子以外の中からファイル名の部分だけを取り出しています。
最後にそれらをつなぎ合わせて書き込み用のパスとしてファイルを保存しています。
ここまでが一通りの説明になります。
6行目の「PNG」を変更したり、9行目の「2778,1284」を変更すれば他の型式の画像ファイルを変更したり、他のサイズに変更したりすることもできます。
以上が、Pythonで同じフォルダ内のある型式のすべての画像ファイルの画像サイズを変更する方法の説明になります。