1

我正在使用 JAI 库对一系列图像进行调整,每个图像的大小约为 1300x1000。我使用“重新缩放”调整像素强度,并使用 TiledImage.createGraphics() 方法中的 Graphics2D 对象添加文本和线条。然后我使用“subsampleaverage”调整图像大小以适应屏幕,并使用 Graphics2D.drawRenderedImage() 渲染到屏幕。到目前为止,几乎没有减速,渲染大约需要 40-60 毫秒。

但是,如果我只添加文本和行,显示会减慢到 100-200 毫秒。我似乎无法弄清楚为什么会这样,因为在调整像素强度之后或之前添加文本很好。

我一直在搜索该网站,但似乎找不到任何具体的答案。许多建议是使用 BufferedImages,但从 PlanarImages 转换为 BufferedImages 似乎也有减速问题。

4

1 回答 1

1

显然,文本在 Java 中的渲染速度仍然非常缓慢。每个对象的字形都Font必须在对象上进行渲染和绘制Graphics。由于对象上有大量文本,Font对象以及所有使用过的对象都会Glyphs被重新创建,从而导致速度大幅下降。

即使使用 JOGL,速度也会显着下降。但是使用同一个TextRenderer对象可以通过创建一个对象并在它还活着Font的情况下重用它来缓解这种情况。TextRenderer当然,这限制了您使用多个 Font 对象,因为 JOGL 尚未实现一个setFont功能,需要您TextRenderer为每个新字体、字体样式和字体粗细创建一个新对象。

希望这可以帮助任何有类似问题的人。

于 2011-08-23T15:44:22.747 回答