Java Image paintToImage(Component comp)

Here you can find the source of paintToImage(Component comp)

Description

paint To Image

License

Open Source License

Declaration

public static BufferedImage paintToImage(Component comp) 

Method Source Code


//package com.java2s;
/*//  w w  w. ja  v a 2 s  .  c o m
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */

import java.awt.*;
import java.awt.image.*;
import javax.swing.*;

public class Main {
    public static BufferedImage paintToImage(Component comp) {
        int width = comp.getWidth();
        int height = comp.getHeight();

        if (width <= 0 || height <= 0) {
            return null;
        }

        //   BufferedImage image =
        //       comp.getGraphicsConfiguration().createCompatibleImage(
        //       width, height, Transparency.TRANSLUCENT);

        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);

        Graphics2D g = image.createGraphics();

        // For unknown reasons, painting to images occasionally requires
        // disabling double-buffering :P
        RepaintManager manager = RepaintManager.currentManager(comp);
        boolean dbEnabled = manager.isDoubleBufferingEnabled();
        if (dbEnabled) {
            manager.setDoubleBufferingEnabled(false);
        }

        comp.paint(g);

        if (dbEnabled) {
            manager.setDoubleBufferingEnabled(true);
        }

        g.dispose();

        return image;
    }
}

Related

  1. loadImage(byte[] imgStr, int imageSize)
  2. makeColorTransparent(Image im, Color c)
  3. mask(Image img, Color color)
  4. openImage()
  5. openImageFileChooser(Component com)
  6. prepareImagePath(String html, URL url)
  7. removeImage(JLabel image)
  8. removeRedeye(Image im, final int x1, final int y1, final int x2, final int y2)
  9. renderComponentToImage(JComponent component)