List of usage examples for com.badlogic.gdx.graphics.g2d.freetype FreeTypeFontGenerator generateData
public FreeTypeBitmapFontData generateData(FreeTypeFontParameter parameter)
From source file:com.randombot.theme.Ttf2FntGenerator.java
License:Open Source License
/** * Convenience method for generating a font, and then writing the fnt and * png files. Writing a generated font to files allows the possibility of * only generating the fonts when they are missing, otherwise loading from a * previously generated file./*w w w .j av a2s. co m*/ * * @param fontFile * @param fontSize * @param destiny */ private void generateFiles(String fontName, FileHandle fontFile, int fontSize, int pageWidth, int pageHeight, FileHandle destiny) { FreeTypeFontGenerator generator = new FreeTypeFontGenerator(fontFile); PixmapPacker packer = new PixmapPacker(pageWidth, pageHeight, Pixmap.Format.RGBA8888, 2, false); FreeTypeFontParameter param = new FreeTypeFontParameter(); param.packer = packer; param.characters = FreeTypeFontGenerator.DEFAULT_CHARS; param.size = fontSize; param.flip = false; FreeTypeFontGenerator.FreeTypeBitmapFontData fontData = generator.generateData(param); saveFontToFile(fontData, fontSize, fontName, packer, destiny); generator.dispose(); packer.dispose(); }
From source file:es.eucm.ead.maven.GenerateSkinMojo.java
License:Open Source License
/** * Convenience method for generating a font, and then writing the fnt and * png files. Writing a generated font to files allows the possibility of * only generating the fonts when they are missing, otherwise loading from a * previously generated file./*from w w w. j ava2 s .c o m*/ * * @param fontFile * @param fontSize * @param destiny */ private void generateFiles(String fontName, FileHandle fontFile, int fontSize, FileHandle destiny) { FreeTypeFontGenerator generator = new FreeTypeFontGenerator(fontFile); // compute the minimum page size for a square png FreeType.Library library = FreeType.initFreeType(); FreeType.Face face = FreeType.newFace(library, fontFile, 0); FreeType.setPixelSizes(face, 0, fontSize); FreeType.SizeMetrics fontMetrics = face.getSize().getMetrics(); float scale = FreeType.toInt(fontMetrics.getHeight()); for (int c = 32; c < (32 + face.getNumGlyphs()); c++) { if (FreeType.loadChar(face, c, FreeType.FT_LOAD_DEFAULT)) { int lh = FreeType.toInt(face.getGlyph().getMetrics().getHeight()); scale = (lh > scale) ? lh : scale; } } // generate the glyphs int maxGlyphHeight = (int) Math.ceil(scale); float area = maxGlyphHeight * maxGlyphHeight * FreeTypeFontGenerator.DEFAULT_CHARS.length(); int pageWidth = MathUtils.nextPowerOfTwo((int) Math.sqrt(area)); pageWidth = Math.min(pageWidth, 1024); PixmapPacker packer = new PixmapPacker(pageWidth, pageWidth, Pixmap.Format.RGBA8888, 2, false); FreeTypeFontGenerator.FreeTypeFontParameter param = new FreeTypeFontGenerator.FreeTypeFontParameter(); param.packer = packer; param.characters = FreeTypeFontGenerator.DEFAULT_CHARS; param.size = fontSize; param.flip = false; FreeTypeFontGenerator.FreeTypeBitmapFontData fontData = generator.generateData(param); saveFontToFile(fontData, fontSize, fontName, packer, destiny); generator.dispose(); packer.dispose(); }