Ejemplo n.º 1
0
def build_sprite_sheets(args, sprites):

    sheets = []

    layout = get_layout(args.layout)

    oldlen = 0

    with Timer('generate sheet layouts'):
        while sprites and len(sprites) != oldlen:
            oldlen = len(sprites)

            sheet = Sheet(min_size=args.min_size,
                          max_size=args.max_size,
                          rotate=args.rotate,
                          npot=args.npot,
                          square=args.square,
                          layout=layout)

            sprites = sheet.add(sprites)

            if sheet.sprites:
                sheets.append(sheet)

    if sprites:
        log.warn("Could not place:")
        for spr in sprites:
            log.warn("\t%s", spr.name)

    return sheets
Ejemplo n.º 2
0
def build_sprite_sheets(args, sprites):

    sheets = []

    layout = get_layout(args.layout)

    oldlen = 0

    with Timer('generate sheet layouts'):
        while sprites and len(sprites) != oldlen:
            oldlen = len(sprites)

            sheet = Sheet(
                min_size = args.min_size,
                max_size = args.max_size,
                rotate = args.rotate,
                npot = args.npot,
                square = args.square,
                layout = layout
            )

            sprites = sheet.add(sprites)

            if sheet.sprites:
                sheets.append(sheet)

    if sprites:
        log.warn("Could not place:")
        for spr in sprites:
            log.warn("\t%s", spr.name)

    return sheets
Ejemplo n.º 3
0
def load_and_process_sprites(args):

    sprites = load_sprites(args.sprites)

    if not sprites:
        raise ValueError('No sprites found.')

    if args.mask:
        ## Mask sprites against background color
        sprites = mask_sprites(sprites, args.mask)

    if args.trim:
        ## Trim sprites to visible area
        sprites = trim_sprites(sprites)
    else:
        ## Generate hashes of trimmed sprites
        sprites = hash_sprites(sprites)

    if args.alias is not None:
        ## Find and remove duplicate sprites
        sprites, aliased = alias_sprites(sprites, args.alias)

        if aliased:
            sheet = Sheet(npot=True, layout=get_layout('stack'))
            sheet.add(aliased)
            texture = sheet.prepare(args.debug)
            texname = '%salias.png' % args.prefix
            texture.save(texname)

    if args.extrude:
        ## Extrude sprite edges to avoid color bleed
        sprites = extrude_sprites(sprites, args.extrude)

    if args.pad:
        ## Insert transparent padding between sprites
        sprites = pad_sprites(sprites, args.pad)

    if args.sort:
        sprites = sort_sprites(sprites, args.sort, args.rotate)

    return sprites
Ejemplo n.º 4
0
def load_and_process_sprites(args):

    sprites = load_sprites(args.sprites)

    if not sprites:
        raise ValueError('No sprites found.')

    if args.mask:
        ## Mask sprites against background color
        sprites = mask_sprites(sprites, args.mask)

    if args.trim:
        ## Trim sprites to visible area
        sprites = trim_sprites(sprites)
    else:
        ## Generate hashes of trimmed sprites
        sprites = hash_sprites(sprites)

    if args.alias is not None:
        ## Find and remove duplicate sprites
        sprites, aliased = alias_sprites(sprites, args.alias)

        if aliased:
            sheet = Sheet(npot=True, layout=get_layout('stack'))
            sheet.add(aliased)
            texture = sheet.prepare(args.debug)
            texname = '%salias.png' % args.prefix
            texture.save(texname)

    if args.extrude:
        ## Extrude sprite edges to avoid color bleed
        sprites = extrude_sprites(sprites, args.extrude)

    if args.pad:
        ## Insert transparent padding between sprites
        sprites = pad_sprites(sprites, args.pad)

    if args.sort:
        sprites = sort_sprites(sprites, args.sort, args.rotate)

    return sprites
Ejemplo n.º 5
0
def load_layout_data(name):
    return layouts.get_layout(name)