def export_nametable(nametable_data, chr_data, png_file, palette=palette): if isinstance(nametable_data, str): nts = nametable.load_nametable(nametable_data) else: nts = nametable_data if isinstance(chr_data, str): sprs = SpriteSet(chr_data) else: sprs = SpriteSet(chr_data) nt = nametable.get_nametable(0, nts) size = (256, 256) img = Image.new('RGB', size) draw = ImageDraw.Draw(img) nt_index = 0 # num_nt = nametable.length(nts) if len(sprs) == 512: start = 256 else: start = 0 for y in range(32): for x in range(32): dx = nt_index / 32 dy = nt_index % 32 spr_index = nt[y][x] + start # TODO something strange with X and Y spr = sprs.get(spr_index) draw_sprite(spr, dx, dy, draw, palette) nt_index += 1 img.save(png_file, 'PNG')
def export_chr(chr_data, image_file, palette=palette, width=8): if isinstance(chr_data, str): sprs = SpriteSet(chr_data) else: sprs = SpriteSet(chr_data) spr_len = len(sprs) height = spr_len / width size = (width * 8, height * 8) img = Image.new('RGB', size) draw = ImageDraw.Draw(img) for s_index in range(spr_len): spr = sprs.get(s_index) dx = s_index % width dy = s_index / width for y in range(8): for x in range(8): color = spr[y][x] draw.point((x + (8 * dx), y + (8 * dy)), palette[color]) img.save(image_file, 'PNG')