Mega Code Archive

 
Categories / Java / 2D Graphics GUI
 

Loads an image in a format compatible with the current display

/*  *  * Created on March 16, 2007, 4:34 PM  *  * Copyright 2006-2007 Nigel Hughes  *  * 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.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.GraphicsEnvironment; import java.awt.Image; import java.awt.RenderingHints; import java.awt.Transparency; import java.awt.font.FontRenderContext; import java.awt.font.LineBreakMeasurer; import java.awt.font.TextAttribute; import java.awt.font.TextLayout; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.text.AttributedCharacterIterator; import java.text.AttributedString; import java.util.Hashtable; import java.util.LinkedList; import javax.imageio.ImageIO; import javax.swing.JComponent; /**  * @author nigel  */ public class Utils {   /**     * Loads an image in a format compatible with the current display    *    *    * @return A BufferedImage with the appropriate color model    */   public static BufferedImage loadCompatibleImage(String imageURL){       Image image = null;       try {           image = ImageIO.read(new URL(imageURL));       } catch (MalformedURLException ex) {           ex.printStackTrace();           return null;       } catch (IOException ex) {           ex.printStackTrace();           return null;       }       if (image==null){           return null;       }              GraphicsConfiguration configuration = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();              //Create a buffered image which is the right (translucent) format for the current graphics device, this       //should ensure the fastest possible performance. Adding on some extra height to make room for the reflection       BufferedImage originalImage = configuration.createCompatibleImage(image.getWidth(null),image.getHeight(null), Transparency.TRANSLUCENT);              //Blit the loaded image onto the optimized surface by creating a graphics context for the new image       Graphics2D g = originalImage.createGraphics();       //Draw the original image       g.drawImage(image, 0, 0, null);       g.dispose();       return originalImage;   } }