PySimpleGUIで画像を一括で縮小リサイズ

スポンサーリンク
スポンサーリンク

プログラムの説明

  • フォルダ内にある画像を一括でサイズ縮小できる。
  • パソコン用デスクトップアプリとして使用可能。
  • アプリはPySimpleGUIで作成。

操作動画

サンプルコード

import PySimpleGUI as sg
import sys
import os
import glob
from PIL import Image

if len(sys.argv) == 1:
   event, values = sg.Window('My Script',
                   [
                   [sg.Text('サイズ', size=(5, 1)), sg.InputText('')],
                   [sg.InputText(), sg.FolderBrowse()],
                   [sg.Open('実行')]
                   ]).read(close=True)
   img_size = values[0]
   fname = values[1]
else:
   fname = sys.argv[1]

if not fname:
   sg.popup("Cancel", "No filename supplied")
   raise SystemExit("Cancelling: no filename supplied")

else:
   #配列「files」をforで回す
   files = glob.glob(fname + '/*.jpg')
   for f in files:
      img = Image.open(f)
      img.thumbnail((int(img_size),int(img_size)), Image.ANTIALIAS)
      ftitle, fext = os.path.splitext(f)
      a1,a2 = os.path.split(f)

      #ファイル名に「s_」を付けて、縮小した画像を保存する
      img.save(a1 + '/s_' + a2)
   sg.popup('OK!')

PyInstllerでpythonファイルをexe化

上記のpythonコードをデスクトップアプリに変換する。PyinstallerというPythonファイルをexe化するためのライブラリを使うことで実現できる。

これで、デスクトップにアイコンが作れて、それをダブルクリックすることで起動できるようになる。

pyinstallerを、pythonファイル名を指定して実行することで、exeファイルを作成することができる。

pip install PyInstaller
pyinstaller -wF test.py

exeアイコンとデスクトップアプリを起動した状態はこちら。ここで画像サイズと画像ファイルが入っているフォルダ名を指定する。

フリーソフト「縮小専用。」との比較

縮小専用で縮小すると、容量が大きいのになぜか写真が荒くなる。なんでだろう?
このpythonで縮小した方が容量も小さく、画像も荒くならないのでこっちでやってる。
特にブログに複数の写真を載せたいときなどに便利。

コメント

タイトルとURLをコピーしました