こんにちは、さすを(@sasuwo0409)です。
いきなりですが、
フォルダにある画像のサイズをまとめて変換したい!
と思ってはいませんか?
今回の記事は、Pythonを使ってフォルダにある画像のサイズを一括で変換する方法を解説してみたいと思います。
この記事を読めば、フォルダの画像を簡単にサイズ変換することができます。
それでは本文をどうぞ。
フォルダに大量に集めた画像のサイズを変えたいんだけど、ひとつひとつ手でやるのほんとうにめんどくさい、、
もっと効率的にできる方法はないかしら、、
この悩みを解決します!
※0円のサンプルテキストという近道
独学よりプログラミングスクールの方が効果は出やすいですが、値段が高く、なかなか手を出しづらいですよね。techgymでは無料のサンプルテキストと解説動画をもらえるので、これを使ってお得にPythonの基礎を学ぶのもオススメです。
最短1分でできる!
1.Pythonを使って複数枚の画像を自動でExcelに張り付ける方法
今回はGoogle Colaboratory上でプログラムを動かしていきます。
Google Colaboratoryの使い方については「【3分で解決!】Google Colaboratoryの使い方【無料ですぐにPythonを使えます】」で解説しています。
パスを変えればローカル環境でも使うことができます!
Pythonを使って画像のサイズを変更するための手順は以下の2ステップです。
- 画像を格納するフォルダを作成する
- 画像のサイズを変更するプログラムを書く
その①:画像を格納するフォルダを作成する
今回は、プログラムが格納されているGoogle Colabフォルダ直下にimgフォルダを作成しています。
また、imgフォルダの中にdog_testフォルダ、dog_testフォルダの中にresizeフォルダを作っています。
Google Colab
—–change_pic_size.ipynb(これから作るスクリプト)
—–img
———–dog_test(サイズを変更したい画像が入ったフォルダ)
—————– resize(空のフォルダ)
フォルダ構成を変更してもOKですが、後述するプログラムの保存先フォルダ名が変わるので注意してください。
なお、まだ画像を準備しておらず、一括で画像を取得したい場合は、「【コピペOKです】Pythonを使って自動でGoogle画像を収集する方法を徹底解説!」が参考になると思います。
その②:画像のサイズを変更するプログラムを書く
フォルダ内の画像を自動で変更するプログラムは下記の通りです。
#ドライブをマウントする
from google.colab import drive
drive.mount('/content/drive')
補足:
上記のコマンドを実行すると、以下の画面が現れます。手順通りに操作すればOKです。
1.URLを押下
2.希望のアカウントを選択
3.ログインを押下
4.コードをコピーし、「Enter your authorization code」に入力
#カレントディレクトリに移動
%cd "/content/drive/My Drive/Google Colab"
import os
import time
import datetime
import PIL.Image
from pytz import timezone
#現在時刻の表示
now = datetime.datetime.now()
jst_now = timezone('Asia/Tokyo').localize(now)
print("処理を開始します。")
print(jst_now)
#処理時間計測用
tm_start = time.time()
#リサイズ前の画像フォルダ
dir_org = ('img/dog_test')
#リサイズした画像を格納するフォルダ
new_dir_name = ('img/dog_test/resize')
files = os.listdir(dir_org)
files_file = [f for f in files if os.path.isfile(os.path.join(dir_org, f))]
#希望画像サイズ
width = 120
height = 90
for file in files_file:
img = PIL.Image.open(dir_org + '/' + file)
img_resize = img.resize((width,height))
img_resize.save(os.path.join(new_dir_name, file))
tm_end = time.time()
print('------------------------------------')
print('処理が完了しました。')
total = tm_end - tm_start
total_str = f'トータル時間: {total:.1f}s({total/60:.2f}min)'
print(total_str)
実行結果:
作成したフォルダをローカルに落とす方法
作成したフォルダをローカルに落とすには、「resize」フォルダを右クリック → 「ダウンロード」の順に行えばOKです。
最後に:「単純作業」をつぶしていこう
Google Colaboratoryを使ってフォルダ画像を一括でサイズ変換する方法を解説してきました。
ちょっとした単純作業でも、それが増えれば膨大な時間になるので、自動化できることに越したことはないですよね。
というわけで、これからもコツコツと自分の時間が増えるようプログラムを書いていこうと思います。この記事が少しでも役に立っていたらうれしいです!
それでは!
最短1分でできる!
コメント