![]() |
The Java Developers Almanac 1.4Order this book from Amazon. |
e666. Creating a Buffered ImageA buffered image is a type of image whose pixels can be modified. For example, you can draw on a buffered image and then draw the resulting buffered image on the screen or save it to a file. A buffered image supports many formats for storing pixels. Although a buffered image of any format can be drawn on the screen, it is best to choose a format that is the most compatible with the screen to allow efficient drawing. This example demonstrates several ways of creating a buffered image. If the buffered image will not be drawn, it can simply be
constructed with a specific format; See also e667 Creating a Buffered Image from an Image. int width = 100; int height = 100; // Create buffered image that does not support transparency BufferedImage bimage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); // Create a buffered image that supports transparency bimage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);These examples create buffered images that are compatible with the screen: GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice gs = ge.getDefaultScreenDevice(); GraphicsConfiguration gc = gs.getDefaultConfiguration(); // Create an image that does not support transparency bimage = gc.createCompatibleImage(width, height, Transparency.OPAQUE); // Create an image that supports transparent pixels bimage = gc.createCompatibleImage(width, height, Transparency.BITMASK); // Create an image that supports arbitrary levels of transparency bimage = gc.createCompatibleImage(width, height, Transparency.TRANSLUCENT);A screen compatible buffered image can also be created from a graphics context: public void paint(Graphics g) { Graphics2D g2d = (Graphics2D)g; int width = 100; int height = 100; // Create an image that does not support transparency BufferedImage bimage = g2d.getDeviceConfiguration().createCompatibleImage( width, height, Transparency.OPAQUE); // Create an image that supports transparent pixels bimage = g2d.getDeviceConfiguration().createCompatibleImage( width, height, Transparency.BITMASK); // Create an image that supports arbitrary levels of transparency bimage = g2d.getDeviceConfiguration().createCompatibleImage( width, height, Transparency.TRANSLUCENT); }One last way of creating a buffered image is using Component.createImage() . This method can be used only if the
component is visible on the screen. Also, this method returns
buffered images that do not support transparent pixels.
BufferedImage bimage = (BufferedImage)component.createImage(width, height); if (bimage == null) { // The component is not visible on the screen }
e668. Creating a Buffered Image from an Array of Color-Indexed Pixel Values e669. Drawing on a Buffered Image e670. Converting a Buffered Image to an Image e671. Getting and Setting Pixels in a Buffered Image e672. Scaling, Shearing, Translating, and Rotating a Buffered Image
© 2002 Addison-Wesley. |