Here you can find the source of loadCompatibleImage(InputStream stream)
public static BufferedImage loadCompatibleImage(InputStream stream) throws IOException
//package com.java2s; /*//w w w. j a v a2 s. c om * 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 javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.awt.GraphicsConfiguration; import java.awt.GraphicsEnvironment; import java.awt.Graphics; import java.net.URL; import java.io.IOException; import java.io.InputStream; public class Main { public static BufferedImage loadCompatibleImage(URL resource) throws IOException { BufferedImage image = ImageIO.read(resource); return toCompatibleImage(image); } public static BufferedImage loadCompatibleImage(InputStream stream) throws IOException { BufferedImage image = ImageIO.read(stream); return toCompatibleImage(image); } 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()); } }