Here you can find the source of toCompatibleImage(BufferedImage image)
public static BufferedImage toCompatibleImage(BufferedImage image)
//package com.java2s; /*/* ww w .ja v a 2s . com*/ * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.awt.image.BufferedImage; import java.awt.GraphicsConfiguration; import java.awt.GraphicsEnvironment; import java.awt.Graphics; public class Main { public static BufferedImage toCompatibleImage(BufferedImage image) { if (isHeadless()) { return image; } if (image.getColorModel().equals( getGraphicsConfiguration().getColorModel())) { return image; } BufferedImage compatibleImage = getGraphicsConfiguration() .createCompatibleImage(image.getWidth(), image.getHeight(), image.getTransparency()); Graphics g = compatibleImage.getGraphics(); g.drawImage(image, 0, 0, null); g.dispose(); return compatibleImage; } private static boolean isHeadless() { return GraphicsEnvironment.isHeadless(); } private static GraphicsConfiguration getGraphicsConfiguration() { GraphicsEnvironment environment = GraphicsEnvironment .getLocalGraphicsEnvironment(); return environment.getDefaultScreenDevice() .getDefaultConfiguration(); } public static BufferedImage createCompatibleImage(int width, int height) { return getGraphicsConfiguration().createCompatibleImage(width, height); } public static BufferedImage createCompatibleImage(BufferedImage image, int width, int height) { return getGraphicsConfiguration().createCompatibleImage(width, height, image.getTransparency()); } }