當圖像信息量較大,採用以上直接顯示的方法,可能前面一部分顯示後,顯示後面一部分時,因爲後面一部分還未從文件讀出,使顯示呈斑駁現象。爲了提升顯示效果,許多應用程序都採用圖像緩衝技術,即先把圖像完整裝入內存,在緩衝區中繪製圖像或圖形,而後將緩衝區中繪製好的圖像或圖形一次性輸出在屏幕上。緩衝技術不只能夠解決閃爍問題,而且因爲在計算機內存中建立圖像,程序能夠對圖像進行像素級處理,完成複雜的圖像變換後再顯示。
【例 12-6】小應用程序程序演示圖像緩衝顯示技術。程序運行時,當鼠標在圖像區域內按下時,圖像會出現邊框,託動鼠標時,圖像也隨之移動。擡起鼠標後,邊框消失。程序將兩種狀態的圖像先放入兩個緩衝區,當鼠標拖動時,不斷地在新的位置重繪鼠標按下樣式的圖像鼠標擡起時,重繪鼠標擡起樣式的圖像(查看源文件)。
程序要建立緩衝區圖像,須要引入java.awt.image包中的BufferedImage類。要建立一個緩衝區圖,能夠調用createImage()方法,該方法返回一個Image對象,而後再將它轉換成一個BufferedImage對象。例如,代碼:
BufferedImage bimage = (BufferedImage)this.createImage(this.getWidth(),this.getHeight boayulevip.cn ());
也可利用如下構造方法來創建。
BufferedImage(int width,int heigh, int imageType);
其中參數 imageType是圖像類型。
使用緩衝區顯示圖像,需先在緩衝區中準備好圖像,再將緩衝區中的圖像顯示在界面上。顯示圖像須要圖形對象Graphics,能夠經過如下方法創建:
Graphics2D g2d = bimge.createGraphics();java