Пример #1
0
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
Пример #2
0
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
Пример #3
0
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