Skip to content

Instantly share code, notes, and snippets.

@lnrsoft
Created January 17, 2015 19:20
Show Gist options
  • Save lnrsoft/182536c675d3c48ddc5f to your computer and use it in GitHub Desktop.
Save lnrsoft/182536c675d3c48ddc5f to your computer and use it in GitHub Desktop.
Resize jpeg files by size in a given folder in Python
from PIL import Image
import datetime
import os.path
import glob
import time
import PIL
import os
def modification_date(filename):
_t_ = os.path.getmtime(filename)
datetime.datetime.fromtimestamp(_t_)
assert isinstance(_t_, object)
return _t_
START_TIME = time.time()
NAME = []
TIME = []
for Filename in glob.glob('*.JPG'):
# print Filename
NAME.append(Filename)
modificationTime = modification_date(Filename)
# print modificationTime
TIME.append(modificationTime)
for Filename in glob.glob('*.jpg'):
# print Filename
NAME.append(Filename)
modificationTime = modification_date(Filename)
# print modificationTime
TIME.append(modificationTime)
print('--------------------------------------------------')
ARRAYSIZE = len(NAME)
TIME, NAME = zip(*sorted(zip(TIME, NAME)))
print('Number of jpg files in the folder: ' + str(ARRAYSIZE))
print('--------------------------------------------------')
HALF = 0.5 # percentage of size reduction (0.5 = 50%)
for op in range(0, int(ARRAYSIZE), 1):
TempImg = Image.open(NAME[op])
out = TempImg.resize(([int(HALF * s) for s in TempImg.size]), PIL.Image.ANTIALIAS)
out.save(NAME[op] + '_resized_.jpg')
out.close()
time.sleep(0.2) # delays for 0.2 seconds
ELAPSED_TIME = time.time() - START_TIME
print('Elapsed time: ' + str(round(ELAPSED_TIME, 2)) + ' sec')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment