summaryrefslogtreecommitdiff
path: root/static/resizetest/resize.py
diff options
context:
space:
mode:
Diffstat (limited to 'static/resizetest/resize.py')
-rw-r--r--static/resizetest/resize.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/static/resizetest/resize.py b/static/resizetest/resize.py
new file mode 100644
index 0000000..2f01250
--- /dev/null
+++ b/static/resizetest/resize.py
@@ -0,0 +1,43 @@
+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]) \ No newline at end of file