#!/usr/local/bin/python import math import Image import sys from optparse import OptionParser def main(): usage = "usage: %prog [options] input" parser = OptionParser(usage) parser.add_option("-t", "--type", dest="type", type="string", help="ipod type: 'video', 'photo', 'nano'", default='video') (options, args) = parser.parse_args() if len(args) == 0: parser.print_help() return() if len(args) != 1: parser.error("incorrect number of arguments") infile = args[0] res = 1920 tilexres = 320 tileyres = 240 xtiles = 6 if options.type == 'photo': res = 1100 tilexres = 220 tileyres = 176 xtiles = 5 if options.type == 'nano': res = 704 tilexres = 176 tileyres = 132 xtiles = 4 im = Image.open(infile) basename = infile.split('.')[0] newim = im.resize((res, im.size[1] * res / im.size[0]), Image.ANTIALIAS) ytiles = int(math.ceil(newim.size[1]/tileyres)) l = "abcdefghijklmnopqrstuvwxyz" print "Making " + str(xtiles) + " x " + str(ytiles) + " tiles." for j in range(ytiles): for i in range(xtiles): x0 = i * tilexres y0 = j * tileyres tile = newim.crop((x0, y0, x0+tilexres, y0+tileyres)) filename = basename + "_" + l[j] + "_" +str(i) + ".jpg" tile.save(filename) if __name__ == "__main__": main()