比TextLayout.draw()更快的方法 - Graphics2D?

时间:2018-05-30 01:27:17

标签: java graphics2d ikvm

我正在执行以下操作将文本写入位图:

AttributedString as = new AttributedString(buf.toString());
FontRenderContext frc = graphics.getFontRenderContext();
LineBreakMeasurer lineMeasurer = new LineBreakMeasurer(as.getIterator(), frc);
TextLayout layout = lineMeasurer.nextLayout(Integer.MAX_VALUE);
layout.draw (graphics, left, line.getBaseline());

问题是虽然这在Java中非常快,但我们也使用IKVM在.NET下运行,并且它在那里非常慢。

是否有另一种方法可以将格式化文本写入Graphics2D对象?

1 个答案:

答案 0 :(得分:0)

我们在IKVM中发现了问题(它为每个字形的曲线中的每个点重新创建了一个数组-实际上是数百万个数组的创建)。

我们在IKVM中修复了此问题,现在它也可以在IKVM下快速点亮。如果您遇到相同的问题,我们将在https://www.nuget.org/packages/IKVM.WINDWARD/处提供此修复程序。