比 TextLayout.draw() 更快的方法 - Graphics2D?
Faster method than TextLayout.draw() - Graphics2D?
我正在执行以下操作以将文本写入位图:
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 中非常快,但我们也在 .NET 下使用 IKVM 将其编译到 运行,但速度非常慢。
还有其他方法可以将格式化文本写入 Graphics2D 对象吗?
我们在 IKVM 中发现了这个问题(它为每个字形的曲线中的每个点重新创建了一个数组——实际上是数百万个数组创建)。
我们在 IKVM 中修复了这个问题,现在它在 IKVM 下也能快速点亮。如果您遇到同样的问题,我们在 https://www.nuget.org/packages/IKVM.WINDWARD/.
处提供了此修复程序
我正在执行以下操作以将文本写入位图:
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 中非常快,但我们也在 .NET 下使用 IKVM 将其编译到 运行,但速度非常慢。
还有其他方法可以将格式化文本写入 Graphics2D 对象吗?
我们在 IKVM 中发现了这个问题(它为每个字形的曲线中的每个点重新创建了一个数组——实际上是数百万个数组创建)。
我们在 IKVM 中修复了这个问题,现在它在 IKVM 下也能快速点亮。如果您遇到同样的问题,我们在 https://www.nuget.org/packages/IKVM.WINDWARD/.
处提供了此修复程序