Java解析truetype字体以将每个字符提取为图像及其代码

是否有任何java库可用于从真实类型字体(.ttf)中提取每个字符?

字体的每个字符,我想:

  1. 将其转换为图像
  2. 提取其代码(例如:Unicode值)

有人可以帮我向我展示一些关于上述目的的提示吗?

PS:我想知道,这个应用程序是如何制作的: http : //www.softpedia.com/progScreenshots/CharMap-Screenshot-94863.html

这会将String转换为BufferedImage

 public BufferedImage stringToBufferedImage(String s) { //First, we have to calculate the string's width and height BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_4BYTE_ABGR); Graphics g = img.getGraphics(); //Set the font to be used when drawing the string Font f = new Font("Tahoma", Font.PLAIN, 48); g.setFont(f); //Get the string visual bounds FontRenderContext frc = g.getFontMetrics().getFontRenderContext(); Rectangle2D rect = f.getStringBounds(s, frc); //Release resources g.dispose(); //Then, we have to draw the string on the final image //Create a new image where to print the character img = new BufferedImage((int) Math.ceil(rect.getWidth()), (int) Math.ceil(rect.getHeight()), BufferedImage.TYPE_4BYTE_ABGR); g = img.getGraphics(); g.setColor(Color.black); //Otherwise the text would be white g.setFont(f); //Calculate x and y for that string FontMetrics fm = g.getFontMetrics(); int x = 0; int y = fm.getAscent(); //getAscent() = baseline g.drawString(s, x, y); //Release resources g.dispose(); //Return the image return img; } 

我认为没有办法获取所有字符,你必须创建一个String或一个char数组,在那里存储你想要转换为图像的所有字符。

一旦你有Stringchar[]包含你想要转换的所有键,你可以轻松地迭代它并转换调用stringToBufferedImage方法,然后你可以做

 int charCode = (int) charactersMap.charAt(counter); 

如果charactersMap是一个String ,或者

 int charCode = (int) charactersMap[counter]; 

如果charactersMap是一个char数组

希望这可以帮助