import os import subprocess import sys AvatarSize = '50x50!' NormalSize = '400x400!' def is_image(f): f = f.lower() return f.endswith('.jpg') or f.endswith('.jpeg') or f.endswith('.png') or f.endswith('.gif') def load_avatars(path='avatars.txt'): return open(path, 'r').read().splitlines() def resize_file(path, size): cmd = "gm convert -size %s %s -resize %s %s" % (size, path, size, path) print cmd subprocess.Popen(cmd, shell=True) def resize_directory(mode, dir): filter = None avatars = set(load_avatars()) if mode == 'avatars': filter = lambda f: f in avatars elif mode == 'all': filter = is_image else: print 'unknown mode: %s' % mode return files = os.listdir(dir) for f in files: if filter(f): if f in avatars: resize_file('%s/%s' % (dir, f), AvatarSize) else: resize_file('%s/%s' % (dir, f), NormalSize) if __name__ == '__main__': if len(sys.argv) != 3: print "usage: resize.py mode directory" else: resize_directory(sys.argv[1], sys.argv[2])