2

已知

给定FontMetrics

FontMetricsfrom有一个受保护的构造函数Font

问题:

给定一个Font对象,有没有办法在FontMetrics不经过Graphics2D.setFont,的情况下构造一个对象Graphics2D.getFontMetric()

语境

我正在使用类似 TeX 的渲染算法。我需要为 *.pfb 文件中的各种字符计算边界框等。我可以从 *.pfb 文件构造一个 Font 对象。我需要一个FontMetrics对象来获得上升、下降、宽度。对我来说,必须构造一个未使用的中间 Graphics 对象才能获得FontMetrics.

4

2 回答 2

4

给定一个Font对象,有没有办法在FontMetrics不经过Graphics2D.setFont,的情况下构造一个对象Graphics2D.getFontMetric()

查看BufferedImage.createGraphics()getGraphics()获取获取Graphics实例的替代方法。

于 2012-05-20T22:54:29.913 回答
1

或者完全不使用图形对象:

Font font = new Font("Helvetica",Font.PLAIN,12);
Canvas c = new Canvas();
FontMetrics fm = c.getFontMetrics(font);

如果您现在调用c.getGraphics()它将返回 null。这(画布)也将在无头模式下工作。

于 2013-08-08T09:59:17.720 回答