PySimpleGUIで画像サイズを一括縮小できるデスクトップアプリ

プログラムの説明

フォルダ内にある画像ファイルのサイズを一括縮小できるデスクトップアプリを作りました。pythonのPySimpleGUIで作られています。

動画

PySimpleGUI フォルダ内画像を一括縮小できるアプリ

pythonコード

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

コメント