create_poster.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:GpxTrackPoster 作者: flopp 项目源码 文件源码
def main():
    generators = {"grid": grid_drawer.TracksDrawer(),
                  "calendar": calendar_drawer.TracksDrawer(),
                  "heatmap": heatmap_drawer.TracksDrawer(),
                  "circular": circular_drawer.TracksDrawer()}

    args_parser = argparse.ArgumentParser()
    args_parser.add_argument('--gpx-dir', dest='gpx_dir', metavar='DIR', type=str, default='.',
                             help='Directory containing GPX files (default: current directory).')
    args_parser.add_argument('--output', metavar='FILE', type=str, default='poster.svg',
                             help='Name of generated SVG image file (default: "poster.svg").')
    args_parser.add_argument('--year', metavar='YEAR', type=str, default='all',
                             help='Filter tracks by year; "NUM", "NUM-NUM", "all" (default: all years)')
    args_parser.add_argument('--title', metavar='TITLE', type=str, default="My Tracks",
                             help='Title to display (default: "My Tracks").')
    args_parser.add_argument('--athlete', metavar='NAME', type=str, default="John Doe",
                             help='Athlete name to display (default: "John Doe").')
    args_parser.add_argument('--special', metavar='FILE', action='append', default=[],
                             help='Mark track file from the GPX directory as special; use multiple times to mark multiple tracks.')
    args_parser.add_argument('--type', metavar='TYPE', default='grid', choices=generators.keys(),
                             help='Type of poster to create (default: "grid", available: "{}").'.format('", "'.join(generators.keys())))
    args_parser.add_argument('--background-color', dest='background_color', metavar='COLOR', type=str,
                             default='#222222', help='Background color of poster (default: "#222222").')
    args_parser.add_argument('--track-color', dest='track_color', metavar='COLOR', type=str, default='#4DD2FF',
                             help='Color of tracks (default: "#4DD2FF").')
    args_parser.add_argument('--text-color', dest='text_color', metavar='COLOR', type=str, default='#FFFFFF',
                             help='Color of text (default: "#FFFFFF").')
    args_parser.add_argument('--special-color', dest='special_color', metavar='COLOR', default='#FFFF00',
                             help='Special track color (default: "#FFFF00").')
    args_parser.add_argument('--units', dest='units', metavar='UNITS', type=str, choices=['metric', 'imperial'],
                             default='metric', help='Distance units; "metric", "imperial" (default: "metric").')
    args_parser.add_argument('--clear-cache', dest='clear_cache', action='store_true', help='Clear the track cache.')
    args = args_parser.parse_args()

    loader = track_loader.TrackLoader()
    loader.cache_dir = os.path.join(appdirs.user_cache_dir(__app_name__, __app_author__), "tracks")
    if not loader.year_range.parse(args.year):
        raise Exception('Bad year range: {}.'.format(args.year))

    loader.special_file_names = args.special
    if args.clear_cache:
        loader.clear_cache()
    tracks = loader.load_tracks(args.gpx_dir)
    if not tracks:
        raise Exception('No tracks found.')

    print("Creating poster of type '{}' and storing it in file '{}'...".format(args.type, args.output))
    p = poster.Poster(generators[args.type])
    p.athlete = args.athlete
    p.title = args.title
    p.colors = {'background': args.background_color,
                'track': args.track_color,
                'special': args.special_color,
                'text': args.text_color}
    p.units = args.units
    p.tracks = tracks
    p.draw(args.output)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号