我正在编写自定义热图生成器。我想知道用Java绘制盒子(最多约100万)的最快方法是什么。我发现的大多数问题都集中在动态图像上(比如在游戏中),我想知道是否有更好的方法来获取静态图像。我尝试过使用swing(通过GridLayout并在每个盒子中添加彩色画布),使用Graphics2D直接在面板上绘图,也可以使用Processing库。虽然Processing非常快并且生成了干净的图像,但窗口似乎仍然存在问题;无论何时最小化,移动窗口等,它都会生成图像的不同部分。
我听说过OpenGL,但是我从来没有碰过它,我想在投入时间之前想一些关于这个(或其他什么)是否更好的方法的反馈。
答案 0 :(得分:2)
对于静态图像,我将它们绘制到BufferedImage(BI),然后通过Graphics2D绘制它。 我保留了一个布尔值,告诉我BI是否是最新的。这样我只会产生一次昂贵的油漆成本。如果您想获得幻想,可以扩展BI以处理较小的大小调整。对于重大调整大小,您可能希望重新绘制BI,以免引入工件。它对于覆盖数据(例如十字准线,光标下的值等)也很有用,因为您只绘制BI和数据。