Java抽象窗口工具包(AWT)為在Graphics對象上繪制提供許多方法,但是如何在Image對象上繪制或者轉換Graphics對象為Image對象?
AWT Image類提供getGraphics方法和它的擴充,BufferedImage類提供createGraphics方法。優先的選擇是使用BufferedImage,它返回更強大的Graphics2D類。
BufferedImage bffImg = new BufferedImage( );
Graphics gfx = bffImg.createGraphics( );
gfx.drawRect(10, 10, 50, 20); // draw a rectangle
使用強大的Graphics API開發人員能夠創建他們自己的圖像,然後把它寫入磁盤或者以PNG 或GIF的形式把它返回到客戶端。新的JDK 1.4提供一個處理圖像編碼的API。對於那些仍使用1.3和更早的版本,有JAI(Java Advanced Imaging ,Java高級圖像)API。
這個技術可以用來對任何Swing或AWT組件創建快照,並作為圖像保存。這可能是創建屏幕快照的一種方法。請注重正被討論的組件必須可繪制,因此你必須把它添加到某不可見的屏幕上的容器中。來自nanoTITAN Inc.開放源碼的公用庫的ComponentUtility類有這樣的一個快照方法。