2010-08-04 94 views
1

我正在編寫自定義熱圖生成器。我想知道什麼是最快的方法是在Java中繪製盒子(最多約100萬)。我發現的大多數問題都集中在動態圖像上(比如在遊戲中),而且我想知道是否有更好的方法去處理靜態圖像。我嘗試過使用swing(通過GridLayout併爲每個框添加一個彩色畫布),使用Graphics2D直接在面板上繪圖,還使用Processing庫。雖然處理速度非常快,並生成一個乾淨的圖像,窗口似乎有問題保持它;它會產生圖像的不同部分,每當你最小化,移動窗口等。在Java中繪製靜態圖像的最快方法

我聽說過OpenGL,但我從來沒有碰過它,我想要一些反饋,看看是否(或其他)在投入時間之前將是一個更好的方法。

+0

很難回答。我敢打賭,第一個答案將包含:「基準」。但是,Graphics2D應該沒問題。甚至可以使用Graphics2D的OpenGL管道。 – Tedil 2010-08-04 17:51:50

回答

2

對於靜態圖像,我將它們繪製成BufferedImage(BI),然後通過Graphics2D繪製。 我保留一個布爾值,告訴我BI是否是最新的。這樣我只會花費一次昂貴的繪畫費用。如果你想變得有趣,你可以擴展BI來處理小調整。對於重要的調整大小,您可能需要重新繪製BI以避免引入工件。對於覆蓋數據(例如十字線,光標下的值等)也是有用的,因爲您只是繪製BI和數據。

+0

我對調整大小和所有這些都不感興趣,只是爲了讓我的時間減少,所以它的速度與R相當(它可以在25秒內完成大約650萬個點)。這很不錯 - 不像我想要的那麼快,但肯定比我一直在做的更快。 :) – 2010-08-05 15:28:47