diff --git a/lib/fmt/png.py b/lib/fmt/png.py index 7ee663a..8e3ba0b 100644 --- a/lib/fmt/png.py +++ b/lib/fmt/png.py @@ -85,14 +85,17 @@ def render_ansi(text, options=None): return _gen_term(buf, graphemes, options=options) -def _color_mapping(color): +def _color_mapping(color, inverse=False): """Convert pyte color to PIL color Return: tuple of color values (R,G,B) """ if color == 'default': + if inverse: + return 'black' return 'lightgray' + if color in ['green', 'black', 'cyan', 'blue', 'brown']: return color try: @@ -185,7 +188,7 @@ def _gen_term(buf, graphemes, options=None): bg_color = 0 if "background" in options: - bg_color = _color_mapping(options["background"]) + bg_color = _color_mapping(options["background"], options.get("inverted_colors")) image = Image.new('RGB', (cols * CHAR_WIDTH, rows * CHAR_HEIGHT), color=bg_color) @@ -203,12 +206,12 @@ def _gen_term(buf, graphemes, options=None): for line in buf: x_pos = 0 for char in line: - current_color = _color_mapping(char.fg) + current_color = _color_mapping(char.fg, options.get("inverted_colors")) if char.bg != 'default': draw.rectangle( ((x_pos, y_pos), (x_pos+CHAR_WIDTH, y_pos+CHAR_HEIGHT)), - fill=_color_mapping(char.bg)) + fill=_color_mapping(char.bg, options.get("inverted_colors"))) if char.data == "!": try: