我想實現一個繪圖工具與圖層的支持。爲每個圖層創建一個WritableRaster。要顯示畫布,必須合併圖層。什麼是最有效的方式來做到這一點?我可以使用bufferedImage,設置柵格並使用alpha組合將每個圖層繪製到Graphics上下文中。但是,在數據層面合併它然後繪製單個圖像是否更好/更快?合併柵格
編輯: 我做了一些分析。這是我目前的做法是什麼樣子:
//tmp.getRaster().setRect(layer.getRaster()); // VERY slow
tmp.getRaster().setDataElements(0, 0, layer.getRaster()); //slow
g2.drawImage(tmp, 0, 0, scaledDim.width, scaledDim.height, null);
我用BufferedImages代替WritableRasters對於之前的每一層,也沒有延遲明顯。
我的下一步是緩存頂層和底層,所以只會繪製3張圖片。這可能會解決問題。