import dcc.doom_base import sys import wand.drawing import wand.image class Text(dcc.doom_base.WadMap): def get_parser(self, prog_name): parser = super().get_parser(prog_name) parser.add_argument("--nomap", action="store_true") parser.add_argument("--demotype", default="UV-Max") return parser def take_action(self, parsed_args): text = sys.stdin.read().rstrip() if not parsed_args.nomap: text = "MAP{}: {}".format(parsed_args.map, text) text = "{}\n{} Demo".format(text, parsed_args.demotype) with wand.image.Image(height=dcc.config.THUMB_HEIGHT,width=dcc.config.THUMB_WIDTH) as img: with wand.drawing.Drawing() as draw: draw.font = dcc.config.FONT draw.font_size=64 draw.fill_color=wand.color.Color(dcc.config.TEXT_FILL_COLOR) draw.stroke_color=wand.color.Color(dcc.config.TEXT_STROKE_COLOR) draw.stroke_width=10 draw.text_interline_spacing=-16 draw.text(5,int(draw.font_size),text) draw(img) draw.stroke_color=wand.color.Color("none") draw.stroke_width=0 draw.text(5,int(draw.font_size),text) draw(img) img.trim() img.reset_coords() img.save(filename=dcc.config.TextThumbPath(parsed_args.wad, parsed_args.map, parsed_args.name))