#!/usr/bin/env python import os, sys, argparse, os.path, json, pixelterm from PIL import Image, PngImagePlugin if __name__ == '__main__': parser = argparse.ArgumentParser(description='Render pixel images on 256-color ANSI terminals') parser.add_argument('image', type=str, nargs='*') parser.add_argument('-d', '--output-dir', type=str, help='Output directory (if not given, output to stdout)') args = parser.parse_args() for f in args.image: img = Image.open(f).convert("RGBA") if args.output_dir: print(f) foo, _, _ = f.rpartition('.png') output = os.path.join(args.output_dir, os.path.basename(foo)+'.pony') metadata = json.loads(img.info.get('pixelterm-metadata')) comment = metadata.get('_comment') if comment is not None: del metadata['_comment'] comment = '\n'+comment else: comment = '' metadataarea = '$$$\n' +\ '\n'.join([ '\n'.join([ k.upper() + ': ' + v for v in metadata[k] ]) for k in sorted(metadata.keys()) ]) +\ comment + '\n$$$\n' with open(output, 'w') as of: of.write(metadataarea) of.write(pixelterm.termify_pixels(img)) else: print(pixelterm.termify_pixels(img))