'; if 'text' in item: caption += u'{0}'.format(autolink(item['text'])) if 'date' in item: dt = parse8601(item['date'], "%d %b %Y") caption += u'{0}'.format(dt) if 'url' in item: ext = os.path.splitext(urlparse.urlparse(item['url']).path)[1] if ext: ext = ext[1:].upper() caption += u'{1}'.format(item['url'], ext) if 'text' or 'date' in item: caption += u'
'; t = tiles_wrapper(path, item['url'], text=caption) tiles.append(t) tile0 = t.get_tile_path(0, 0, 0) # os.path.join(path, args.tilename.format({'x': 0, 'y': 0, 'z': 0})) if not os.path.exists(tile0) or args.force: print ("Tiling {0}".format(n), file=sys.stderr) try: im = Image.open(n) try: os.makedirs(path) except OSError: pass tile_image(im, args.zoom, args.tilewidth, args.tileheight, path+"/", args.tilename, bgcolor) # tiles.append(t) except IOError as e: print ("Missing {0}, skipping".format(n), file=sys.stderr) tiles = tiles[:-1] # DO THE LAYOUT, generating intermediate tiles (zoom outs) if args.reverse: tiles.reverse() tiles = [t.zoom() for t in tiles] basename = os.path.join(args.tilespath, args.name) if args.recursive: root_node = recursiverender(tiles, basename, args.tilewidth, args.tileheight, args.direction) else: root_node = gridrender(tiles, basename, args.tilewidth, args.tileheight) # OUTPUT ROOT NODE if args.html: print (html(root_node, args.name)) else: print (json.dumps(root_node, indent=args.indent)) if __name__ == "__main__": ap = ArgumentParser("") ap.add_argument("--basepath", default=".") ap.add_argument("--baseuri", default="") ap.add_argument("--tilespath", default="tiles") ap.add_argument("--tilewidth", type=int, default=256) ap.add_argument("--tileheight", type=int, default=256) ap.add_argument("--zoom", type=int, default=3) ap.add_argument("--tilename", default="z{0[z]}y{0[y]}x{0[x]}.png") ap.add_argument("--reverse", default=False, action="store_true") ap.add_argument("--indent", default=2, type=int) ap.add_argument("--recursive", default=False, action="store_true") ap.add_argument("--force", default=False, action="store_true") subparsers = ap.add_subparsers(help='sub-command help') ap_gallery = subparsers.add_parser('gallery', help='Create a grid gallery of images') ap_gallery.add_argument("input", nargs="*") ap_gallery.add_argument("--html", default=False, action="store_true") ap_gallery.add_argument("--recursive", default=False, action="store_true") ap_gallery.add_argument("--direction", type=int, default=3, help="cell to recursively expand into, 0-3, default: 3 (bottom-right)") ap_gallery.add_argument("--name", default="gallery") ap_gallery.set_defaults(func=make_gallery) args = ap.parse_args() args.func(args)