2

我正在编写自定义热图生成器。我想知道用 Java 绘制框(最多约 100 万个)最快的方法是什么。我发现的大多数问题都集中在动态图像上(比如在游戏中),我想知道是否有更好的方法来处理静态图像。我尝试过使用 swing(通过 GridLayout 并向每个框添加彩色画布),使用 Graphics2D 直接在面板上绘图,也可以使用处理库。虽然处理速度非常快并生成了干净的图像,但窗口似乎无法保持它;每当您最小化、移动窗口等时,它都会生成图像的不同部分。

我听说过 OpenGL,但我从未接触过它,在投入时间之前,我想要一些关于它(或其他)是否是更好的方法的反馈。

4

1 回答 1

2

对于静态图像,我将它们绘制到 BufferedImage (BI),然后通过 Graphics2D 绘制。我保留一个布尔值,告诉我 BI 是否是最新的。这样我只需要支付一次昂贵的绘画费用。如果您想花哨,可以扩展 BI 以处理较小的调整大小。对于重大调整大小,您可能需要重新绘制 BI,以免引入工件。它对于覆盖数据(例如十字准线、光标下的值等)也很有用,因为您只是在绘制 BI 和数据。

于 2010-08-04T17:57:28.670 回答