今回の仕様
pythonのコードで「resizeフォルダ」へと一括変更します。
まず、imgフォルダに複数枚画像を用意します。
その後、Pythonで書いたコードを実行すると、
一撃で下の「resizeフォルダ」のようにサイズ変更された画像が保存されます。
たった11行で完成できる簡単なコードです。
数枚でしたら手動で画像サイズを変更すればいいですが、
数百枚ともなれば今回の手法は非常に有効です。
ファイルの準備
今回のコードを書きすすめるにあたって、
「imgフォルダ」と「resizeフォルダ」の2種類を作成します。
「resizeフォルダ」は空で結構ですが、
「imgフォルダ」には画像サイズを変更したい画像をいくつか入れておきましょう。
同じディレクトリでPythonのコードを実行します。
Pillowのインストール
pip install Pillow
「Pillow」はPythonで画像操作を行う際に必要で、
これをインポートすることで、
画像の「モノクロ化」「回転」「拡大・縮小」「トリミング」などの作業を行うことができます。
Pythonで画像操作をする際には、
今回の「Pillow」か「OpenCV」の2択となり、
「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」は画像サイズを変更できませんよ』とエラーを返してきます。
ということで、本記事はPythonで画像を一括変更する方法をまとめました。
最後まで読んでいただき、ありがろうございました\(^o^)/
プログラミングにオススメのPC機器
【PC外部モニター】
外部モニターがあるだけで、PC作業がぐっと楽になります。
僕も使ってているASUSのコスパ最強モニターが1番のおすすめです\(^o^)/
【トラックボールマウス】
トラックボール付きマウスは、作業効率が爆上がりします。
レビューを見ていただければわかりますが、間違いなく損のない買い物になります\(^o^)/