Exemplo n.º 1
0
def output_at_dungeon_tiles(fn: str, common_at: CommonAt, pal: Dpla):
    print("Outputting dungeon AT as image.")
    img_bin = common_at.decompress()
    tiles = list(iter_bytes(img_bin, int(8 * 8)))
    # create a dummy tile map containing all the tiles
    tilemap = []
    for i in range(0, len(tiles)):
        tilemap.append(TilemapEntry(i, False, False, 0, True))
    out_img = to_pil(tilemap,
                     tiles, [pal.get_palette_for_frame(0, 0)],
                     8,
                     int(len(tiles) * 8 / 3),
                     4 * 8,
                     tiling_width=1,
                     tiling_height=1,
                     bpp=8)
    # Alternate stategy:
    img_8bpp = img_bin  #bytes(x for x in iter_bytes_4bit_le(img_bin))
    mod = 16 * 4
    channels = 1
    mode = 'RGB' if channels == 3 else 'P'
    out_img = Image.frombuffer(mode,
                               (int(len(img_8bpp) / mod / channels), mod),
                               bytes(img_8bpp), 'raw', mode, 0, 1)
    if mode == 'P':
        out_img.putpalette(pal.get_palette_for_frame(0, 0))
    os.makedirs(os.path.join(output_dir, 'raw_img'), exist_ok=True)
    with open(os.path.join(output_dir, 'raw_img', fn), 'wb') as f:
        f.write(img_bin)

    out_img.save(os.path.join(output_dir, fn + '.png'))
Exemplo n.º 2
0
def output_at_water_tiles(fn: str, common_at: CommonAt, pal: Dpla):
    print("Outputting water AT as image.")
    img_bin = common_at.decompress()
    tiles = list(iter_bytes(img_bin, int(8 * 8 / 2)))
    # create a dummy tile map containing all the tiles
    tilemap = []
    for i in range(0, len(tiles)):
        tilemap.append(TilemapEntry(i, False, False, 0, True))
    out_img = to_pil(tilemap,
                     tiles, [pal.get_palette_for_frame(0, 0)],
                     8,
                     int(len(tiles) * 8 / 3),
                     4 * 8,
                     tiling_width=1,
                     tiling_height=1)
    os.makedirs(os.path.join(output_dir, 'raw_img'), exist_ok=True)
    with open(os.path.join(output_dir, 'raw_img', fn), 'wb') as f:
        f.write(img_bin)

    out_img.save(os.path.join(output_dir, fn + '.png'))
Exemplo n.º 3
0
 def serialize(cls, data: Dpla, **kwargs: OptionalKwargs) -> bytes:
     return data.sir0_serialize_parts()[0]
Exemplo n.º 4
0
 def deserialize(cls, data: bytes, **kwargs: OptionalKwargs) -> Dpla:
     return Dpla(data, 0)