def acquire_chr(image, nes_palette=palette, optimize_repeated=False): assert image.size[0] % 8 == 0 assert image.size[1] % 8 == 0 colors = get_colors(image) assert len(colors) <= 4, ("Image has {} colors, it can only have at most " "4").format(len(colors)) default = ((0, 0, 0) in colors and (255, 0, 0) in colors and (0, 255, 0) in colors and (0, 0, 255) in colors) if default: nes_palette = palette else: nes_palette = colors sprite_keys = OrderedDict() sprs = [] index = 0 pixels = image.load() for y in range(image.size[1] / 8): for x in range(image.size[0] / 8): spr = fetch_chr(pixels, x, y, nes_palette) encoded = sprite.encode_sprite(spr) key = ''.join([chr(e) for e in encoded]) if not optimize_repeated or key not in sprite_keys: sprite_keys[key] = index sprs.extend(encoded) index += 1 else: pass # print index return sprs, sprite_keys
def acquire_chr(image, nes_palette=palette, optimize_repeated=False): assert image.size[0] % 8 == 0 assert image.size[1] % 8 == 0 colors = get_colors(image) assert len(colors) <= 4, ("Image has {} colors, it can only have at most " "4").format(len(colors)) default = ( (0, 0, 0) in colors and (255, 0, 0) in colors and (0, 255, 0) in colors and (0, 0, 255) in colors ) if default: nes_palette = palette else: nes_palette = colors sprite_keys = OrderedDict() sprs = [] index = 0 pixels = image.load() for y in range(image.size[1] / 8): for x in range(image.size[0] / 8): spr = fetch_chr(pixels, x, y, nes_palette) encoded = sprite.encode_sprite(spr) key = ''.join([chr(e) for e in encoded]) if not optimize_repeated or key not in sprite_keys: sprite_keys[key] = index sprs.extend(encoded) index += 1 else: pass # print index return sprs, sprite_keys
def convert_chr(image, nes_palette=palette): assert image.size[0] % 8 == 0 assert image.size[1] % 8 == 0 pixels = image.load() colors = [] for i in range(image.size[0]): for j in range(image.size[1]): if pixels[i,j] not in colors: colors.append(pixels[i,j]) assert len(colors) == 4, "Image has %i colors, it can only have 4" % len(colors) default = ( (0,0,0) in colors and (255,0,0) in colors and (0,255,0) in colors and (0,0,255) in colors ) if default: nes_palette = palette sprs = [] for y in range(image.size[1] / 8 ): for x in range(image.size[0] / 8 ): spr = fetch_chr(pixels, x, y, nes_palette) enc = sprite.encode_sprite(spr) sprs.extend(enc) return sprs