Ethan Dalool
4a9051e617
With pathclass.glob_many, we can clean up and feel more confident about many programs that use pipeable to take glob patterns. Added return 0 to all programs that didn't have it, so we have consistent and explicit command line return values. Other linting and whitespace.
44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
'''
|
|
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:]))
|