Pythonで画像サイズを一括変更!【超簡単】

今回の仕様

「imgフォルダ」に入れた画像を一括で画像サイズを変更し、
pythonのコードで「resizeフォルダ」へと一括変更します。

まず、imgフォルダに複数枚画像を用意します。

その後、Pythonで書いたコードを実行すると、
一撃で下の「resizeフォルダ」のようにサイズ変更された画像が保存されます。

たった11行で完成できる簡単なコードです。
数枚でしたら手動で画像サイズを変更すればいいですが、
数百枚ともなれば今回の手法は非常に有効です。

ファイルの準備

今回のコードを書きすすめるにあたって、
「imgフォルダ」と「resizeフォルダ」の2種類を作成します。


「resizeフォルダ」は空で結構ですが、
「imgフォルダ」には画像サイズを変更したい画像をいくつか入れておきましょう。
同じディレクトリでPythonのコードを実行します。

Pillowのインストール

pip install Pillow

「Pillow」はPythonで画像操作を行う際に必要で、
これをインポートすることで、

画像の「モノクロ化」「回転」「拡大・縮小」「トリミング」などの作業を行うことができます。

Pythonで画像操作をする際には、
今回の「Pillow」か「OpenCV」の2択となり、
「OpenCV」は「Pillow」よりも高度な画像処理を行うことができます。

今回の目的は「リサイズ」で、シンプルな作業なので「OpenCV」を使わずに、「Pillow」を使用します。
デフォルトでもインストールされていることもありますが、ターミナルからインストールしておきましょう。


インポート

import os
from PIL import Image

インポートするものは2種類です。
「os」は、自分のPCをPythonのコードで操作する際に必要となります。
「PIL」は、先程インストールした「Pillow」のパッケージです。

メインコード

#ファイル名を宣言
FromImgName = 'img'
ToImgName = 'resize'

#imgフォルダ内の画像名をまとめて取得
files = os.listdir(FromImgName)

#for文で画像サイズを一括変更
for file in files:
    img = Image.open(os.path.join(FromImgName, file)) #画像のパスを生成し、imgへ画像を格納
    img_resize = img.resize((600, 800))  #imgへ格納した画像を600×800サイズ変更
    img_resize.save(os.path.join(ToImgName, file))  #resizeフォルダへ保存

6行目の「os.listdir」について、
「listdir()」関数では、( )内に記入したパスのファイル名・ディレクトリ名の一覧をリスト型で取得します。
ここで使われている「files = os.list(FromImagName)」では、
imgフォルダ内に保存しているの画像名を、filesへリスト型へ格納しています。

10行目のos.path.join(FromImgName, file)について、
「path.join()」関数は、二つの文字列を結合させ、一つのパスにする事ができます。これで画像までのパスを生成して、「Img.open()」関数で画像をPythonで見れる形式へ変換しています。

11行目について、
今回は変更する画像サイズを600✕800としましたが、好みで書き換えてください。

コード全文

import os
from PIL import Image

FromImgName = 'img'
ToImgName = 'resize'
files = os.listdir(FromImgName)
for file in files:
    img = Image.open(os.path.join(FromImgName, file))
    img_resize = img.resize((600, 800))

    img_resize.save(os.path.join(ToImgName, file))

コードの全文です。
「imgフォルダ」と「resizeフォルダ」を準備の上、
このコードをまるまるコピペすると、画像サイズの一括変更が実行できます。

エラー

macをお使いの方は、稀にエラーが起こります。
エラーが起こった際は、
ターミナルを開き、同一ディレクトリ内で下記のコマンドを実行してみてください。

find . -name ".DS_Store" | xargs rm

原因は、macには「.DS_Store」というFinder上に表示されない隠しフォルダが勝手に生成されます。
この「.DS_Store」は画像ではないため、
Pythonが『「.DS_Store」は画像サイズを変更できませんよ』とエラーを返してきます。

ターミナルで「.DS_Store」を削除することで、このエラーが解決されます。

ということで、本記事はPythonで画像を一括変更する方法をまとめました。
最後まで読んでいただき、ありがろうございました\(^o^)/

プログラミングにオススメのPC機器

【PC外部モニター】
外部モニターがあるだけで、PC作業がぐっと楽になります。
僕も使ってているASUSのコスパ最強モニターが1番のおすすめです\(^o^)/

【トラックボールマウス】
トラックボール付きマウスは、作業効率が爆上がりします。
レビューを見ていただければわかりますが、間違いなく損のない買い物になります\(^o^)/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です