e666. 创建缓冲图像

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值