"""Atari conversion dispatch.""" from __future__ import annotations from ... import imageprep from .. import palette as apal from . import gr15 _MODULES = {"gr15": gr15} for _name in ("gr9", "gr8", "gr15dli", "mono"): try: _mod = __import__(f"lenser.atari.convert.{_name}", fromlist=[_name]) _MODULES[_name] = _mod except Exception: pass MODES = list(_MODULES.keys()) def convert_image(path_or_img, mode="gr15", palette_name="ntsc", dither_mode="floyd", intensive=False, prep_opt: imageprep.PrepOptions | None = None, base_color=None): prep_opt = prep_opt or imageprep.PrepOptions() module = _MODULES[mode] border_rgb = apal.get_palette(palette_name)[0] img_rgb = imageprep.prepare( path_or_img, module.WIDTH, module.HEIGHT, module.PIXEL_ASPECT, prep_opt, border_rgb=border_rgb, ) return module.convert(img_rgb, palette_name, dither_mode, intensive, base_color=base_color)