The Java 2D API implements a new imaging model that supports the
manipulation of fixed-resolution images stored in memory. A new
Image class in the java.awt.image package,
BufferedImage, can be used to hold and to manipulate image
data retrieved from a file or a URL. For example, a
BufferedImage can be used to implement double
buffering--the graphic elements are rendered off-screen to the
BufferedImage and are then copied to the screen through a
call to Graphics2D drawImage. The classes
BufferedImage and BufferedImageOp
also enable you to perform a variety of image-filtering operations,
such as blur and sharpen. The producer/consumer imaging model provided
in previous versions of the JDK is supported for backward
compatibility.