def main(): parser_dict = parse_args() create_fonts_dir(parser_dict["args"]["res_path"]) font_chars = get_font_chars(parser_dict["args"]["char_file"]) point_sizes_list = parser_dict["args"]["point_sizes"].split(",") for size in point_sizes_list: print "Creating for ", size create_imagefont( parser_dict["args"]["res_path"], parser_dict["args"]["font_file"], int(size), font_chars, get_color(parser_dict["args"]["bg_color"]), )
def create_atlas(texMode, dirPath, atlasPath, dirName, args): done = False curr_size = int(args['maxrects_bin_size']) texture_packer = None imagesList = None packResult = None # Retry until optimal font atlas size is found. while not done: try: result = pack_atlas(args, dirPath, curr_size) texture_packer = result[0] packResult = result[1] imagesList = result[2] done = True except PackerError: curr_size = next_power_of_two(curr_size) print "Failed, trying next power of two", curr_size borderSize = 1 atlas_name = '%s.%s' % (dirName, args['atlas_type']) atlas_data = AtlasData(name=dirName, width=packResult[0], height=packResult[1], color_mode=texMode, file_type=args['atlas_type'], border=borderSize) for tex in texture_packer.texArr: atlas_data.add_texture(tex) parser = get_parser(args['output_data_type']) parser.parse(atlas_data) parser.save('%s.%s' % (os.path.join(atlasPath, os.path.basename(dirPath)), parser.get_file_ext())) atlas_image = Image.new(texMode, (packResult[0], packResult[1]), get_color(args['bg_color'])) index = 0 for image in imagesList: tex = texture_packer.get_texture(image[0]) atlas_image.paste(image[1], (tex.x, tex.y)) index += 1 atlas_image.save(os.path.join(atlasPath, os.path.basename(dirPath)) + "." + args['atlas_type'], args['atlas_type']) if (args['verbose']): atlas_image.show()