我正在開發一個輕量級圖形API,以滿足不同需求,我希望在顯示圖像之前呈現圖像。我已經覆蓋了AWT的組件以獲得最高的性能。但是,如果我在paint
方法中渲染圖像(畫線,矩形&東西),則在用戶頻繁調用方法時(例如正在調整窗口大小或正在播放動畫),用戶可以看到繪製過程, ,這是一個相當重要的性能解決方案。在Java AWT中繪製單個像素的最快方法圖形
我決定緩存和分離渲染圖像,並簡單地將像素複製到paint
方法中的圖形對象。但是現在我不知道如何繪製一個像素到Graphics對象。我想下層的Sun實現有這樣的方法,但我不應該講這個類。我知道Graphics類聲明瞭幾個看起來很輕量級的方法(drawLine
,drawRect
,fillRect
等),可以用來繪製一個像素,但我不知道哪一個最快。
由於存在內存問題,我不想使用BufferedImage,因此drawImage
在這種情況下不是解決方案。在this question中也不是這樣,因爲我再也沒有使用圖像,並且也沒有在paint
方法中創建新實例(渲染圖像數據類僅在組件大小調整時纔會更改)。
tl; dr:java.awt.Graphics中用於將某個像素的顏色通過其座標設置爲指定顏色(java.awt.Color或RGB,最後優選)的最快方法。
預先感謝您。
,你可以在X通,y座標,然後做g.drawRect(XCOORD ,YCOORD,1,1); –