''' Generate a png file of a solid color, specified by a hex code. ''' import argparse import PIL.Image import sys def full_hex(h): h = h.replace('#', '') if len(h) in [3, 4]: h = ''.join([c * 2 for c in h]) if len(h) == 6: h += 'ff' return h def hex_to_rgb(h): rgb = [int(h[(2*i):(2*i)+2], 16) for i in range(len(h)//2)] return tuple(rgb) def make_hexpng(h, width=1, height=1): h = full_hex(h) rgb = hex_to_rgb(h) filename = f'{h}.png' i = PIL.Image.new('RGBA', size=[width, height], color=rgb) print(filename) i.save(filename) def hexpng_argparse(args): make_hexpng(args.hex_value, width=args.width, height=args.height) return 0 def main(argv): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('hex_value') parser.add_argument('--width', type=int, default=1) parser.add_argument('--height', type=int, default=1) parser.set_defaults(func=hexpng_argparse) args = parser.parse_args(argv) return args.func(args) if __name__ == '__main__': raise SystemExit(main(sys.argv[1:]))