Skip to content

Instantly share code, notes, and snippets.

@coffe67
Created January 12, 2017 03:09
Show Gist options
  • Save coffe67/bc438ca8c27e1b135fbbf4a3a60ecb13 to your computer and use it in GitHub Desktop.
Save coffe67/bc438ca8c27e1b135fbbf4a3a60ecb13 to your computer and use it in GitHub Desktop.
Resize Images In A Folder With Python
from PIL import Image, ExifTags
import datetime
import PIL
import sys
import os, os.path
imgs = list()
if len(sys.argv) > 1:
path = str(sys.argv[1]) if str(sys.argv[1]) and str(sys.argv[1]) != '' else "./"
else:
path = "./"
valid_images = [".jpg",".gif",".png"]
basewidth = 1280
limit_size_bytes = 500000 # = 500 kb
files_in_folder = len(os.listdir(path))
image_files_in_folder = 0
files_resized = 0
files_with_error = 0
print '\nResize Process Start (%s)\n' % datetime.datetime.now()
for f in os.listdir(path):
ext = os.path.splitext(f)[1]
if ext.lower() not in valid_images:
continue
image_files_in_folder+=1
bytes_size = os.stat(os.path.join(path,f)).st_size
if bytes_size > limit_size_bytes:
img = Image.open(os.path.join(path,f))
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
meta_data_ok = False
try:
img._getexif().items()
meta_data_ok = True
except:
pass
#import pdb; pdb.set_trace()
#try:
if meta_data_ok:
for orientation in ExifTags.TAGS.keys() :
if ExifTags.TAGS[orientation]=='Orientation' :
break
exif=dict(img._getexif().items())
try:
if exif[orientation] == 3 :
img=img.rotate(180, expand=True)
elif exif[orientation] == 6 :
img=img.rotate(270, expand=True)
elif exif[orientation] == 8 :
img=img.rotate(90, expand=True)
except:
pass
img.thumbnail((basewidth,hsize), PIL.Image.ANTIALIAS)
img.save(os.path.join(path,f))
img.close()
files_resized+=1
#except Exception as e:
#print '\n Error With Image (%s) -> %s' % (os.path.join(path,f), e.message)
#files_with_error+=1
#pass
print '\nResize Process End At %s , Files In Folder %s, Images In Folder %s, Resized Images %s \n' % (datetime.datetime.now(), files_in_folder, image_files_in_folder, files_resized)
from PIL import Image, ExifTags
import datetime
import PIL
import sys
import os, os.path
imgs = list()
if len(sys.argv) > 1:
path = str(sys.argv[1]) if str(sys.argv[1]) and str(sys.argv[1]) != '' else "./"
else:
path = "./"
valid_images = [".jpg",".gif",".png"]
basewidth = 1280
limit_size_bytes = 500000 # = 500 kb
files_in_folder = len(os.listdir(path))
image_files_in_folder = 0
files_resized = 0
files_with_error = 0
print '\nResize Process Start (%s)\n' % datetime.datetime.now()
for f in os.listdir(path):
ext = os.path.splitext(f)[1]
if ext.lower() not in valid_images:
continue
image_files_in_folder+=1
bytes_size = os.stat(os.path.join(path,f)).st_size
if bytes_size > limit_size_bytes:
img = Image.open(os.path.join(path,f))
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
meta_data_ok = False
try:
img._getexif().items()
meta_data_ok = True
except:
pass
#import pdb; pdb.set_trace()
#try:
if meta_data_ok:
for orientation in ExifTags.TAGS.keys() :
if ExifTags.TAGS[orientation]=='Orientation' :
break
exif=dict(img._getexif().items())
try:
if exif[orientation] == 3 :
img=img.rotate(180, expand=True)
elif exif[orientation] == 6 :
img=img.rotate(270, expand=True)
elif exif[orientation] == 8 :
img=img.rotate(90, expand=True)
except:
pass
img.thumbnail((basewidth,hsize), PIL.Image.ANTIALIAS)
img.save(os.path.join(path,f))
img.close()
files_resized+=1
#except Exception as e:
#print '\n Error With Image (%s) -> %s' % (os.path.join(path,f), e.message)
#files_with_error+=1
#pass
print '\nResize Process End At %s , Files In Folder %s, Images In Folder %s, Resized Images %s \n' % (datetime.datetime.now(), files_in_folder, image_files_in_folder, files_resized)
@ahmedalmindelawy93
Copy link

It doesnot resize!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment