【Python】Pythonで画像ファイル縮小のプログラム

以前、同じ事をするプログラムをJavaで作ったのですが、その時は数百ステップだった気がする。

これをPythonで書くとたったこれだけ。

import os
import sys
import glob
from PIL import Image

# JPGファイルを縮小
#   →*_aft.JPG
# 引数'd'で元ファイル削除

delete_f = '0'
if len(sys.argv) == 2:
    args = sys.argv
    if args[1] == 'd':
        delete_f = '1'

types = ['*.JPG', '*.jpg', '*.JPEG', '*jpeg']
files = []
for t in types:
    files.extend(glob.glob(t))
for f in files:
    im = Image.open(f)
    im_resize = im.resize((int(im.width / 2), int(im.height / 2)))
    title, ext = os.path.splitext(f)
    a = title + '_aft' + ext
    im_resize.save(a)
    print(f + ' -> ' + a)
    if delete_f == '1':
        os.remove(f)

if delete_f == '1':
    print('--\nDelete original file.\ndone.')
else:
    print('--\ndone.')

実行するとこんな感じです。

$ ls -l | awk '{print $9 " " $5}'
 
9.JPG 354082
readme.md 0
resize.py 707

$ python3 resize.py d
9.JPG -> 9_aft.JPG
--
Delete original file.
done.

$ ls -l | awk '{print $9 " " $5}'
 
9_aft.JPG 90838
readme.md 0
resize.py 707

GitHub - mako1980/resize