我在Swing
中顯示圖像。我正在繪製圖像(一串drawRect()
調用)並刷新屏幕。圖像是恆定的,但頂部繪製的對象不是。有什麼辦法可以避免重新繪製圖像嗎?由於顯卡可能會顯示圖像,因此可以認爲drawRect()
通話是瓶頸嗎?我畫了多達20,000個呼叫幀(但通常不超過3000)。擺動圖像顯示優化
編輯:它確實是減慢它的正切調用,並且通過移除透明度通道可以大大提高速度。話雖如此,但加速幷包含透明度仍然不錯。代碼不能變得更簡單,所以我希望通過做一些不同的事情會有所幫助。
public void paintComponent(Graphics g) {
super.paintComponent(g) ;
//grid or walkers
g.drawImage(image, 0, 0, null);
for(Walker w : walkArray){
g.setColor(new Color(255,255-w.data[3], 0, w.data[2]));
g.drawRect(w.data[0], w.data[1], 1, 1);
}
}
你可以發佈你的繪畫方法嗎? –
發佈一些代碼,甚至更好,發佈[SSCCE](http://sscce.org)。 –
圖像是否顯示在BufferedImage中?如果沒有代碼,我們會在這裏受到束縛。 –