A 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; TYPE_INT_RGB
and TYPE_INT_ARGB
are typically used. See BufferedImage
for a list of available formats.
See also e667 在给定图像中创建缓冲图像.
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 创建缓冲图像 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 }
Related Examples |
原文地址:https://www.cnblogs.com/borter/p/9575500.html