Skip to content

Instantly share code, notes, and snippets.

@tai2
Last active October 11, 2015 14:37
Show Gist options
  • Save tai2/3874398 to your computer and use it in GitHub Desktop.
Save tai2/3874398 to your computer and use it in GitHub Desktop.
generate resized bitmaps for each dpi
#!/usr/bin/env python
import sys
import os
import Image
def resize(src_dir, dest_dir, num, den):
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
files = os.listdir(src_dir)
for fname in files:
im = Image.open(os.path.join(src_dir,fname))
im.thumbnail(
(max(1, num * im.size[0] / den),
max(1, num * im.size[1] / den)), Image.ANTIALIAS)
im.save(os.path.join(dest_dir, fname))
if __name__ == '__main__':
if len(sys.argv) < 2:
sys.stderr.write('android_resize.py target_directory [destination_directory]\n')
sys.exit(1)
src_dir = sys.argv[1]
dest_dir = sys.argv[2] if 3 <= len(sys.argv) else './'
if not os.path.exists(src_dir):
sys.stderr.write('input directory does not exist\n')
sys.exit(1)
if not os.path.isdir(src_dir):
sys.stderr.write('input should be a directory\n')
sys.exit(1)
# c.f. http://developer.android.com/guide/practices/screens_support.html
resize(src_dir, os.path.join(dest_dir, 'drawable-ldpi'), 3, 8)
resize(src_dir, os.path.join(dest_dir, 'drawable-mdpi'), 1, 2)
resize(src_dir, os.path.join(dest_dir, 'drawable-hdpi'), 3, 4)
resize(src_dir, os.path.join(dest_dir, 'drawable-xhdpi'), 1, 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment