Loads an image in a format compatible with the current display : Image IO « 2D Graphics GUI « Java






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;
  }
}

   
    
    
  








Related examples in the same category

1.Display image supported by ImageIO
2.Print an Image to print directly
3.List All reader and writer formats supported by ImageIO
4.Display available ImageReaders and ImageWriters by image format and MIME typeDisplay available ImageReaders and ImageWriters by image format and MIME type
5.Write an image of a given format
6.Read an image
7.Simple, functional ImageReaderSpi used to understand how information
8.Simple, functional ImageWriterSpi used to understand how information
9.Example showing how to reset the ordering of ImageReaderSpis in Image I/OExample showing how to reset the ordering of ImageReaderSpis in Image I/O
10.Using mediatracker to pre-load images
11.Get list of unique supported read formats
12.Get list of unique supported write formats
13.Get list of unique MIME types that can be read
14.Get list of unique MIME types that can be written
15.Returns true if the specified format name can be read
16.Returns true if the specified format name can be written
17.Returns true if the specified file extension can be read
18.Returns true if the specified file extension can be written
19.Returns true if the specified mime type can be read
20.Returns true if the specified mime type can be written
21.Show ImageIO Info
22.Write Image with different types
23.Load the image file from a folder or a jar file: use javax.imageio.ImageIO class to read the image file
24.Compress and save an image to the disk
25.Creates a new raster copy
26.Resizes an image
27.Creates an image compatible with the current display
28.Produces a copy of the supplied image
29.Produces a resized image that is of the given dimensions
30.Thumbnail Generator
31.Saves an image to the disk
32.Helper class for debugging stuff in Image I/O.
33.Reading a gif image with ImageIO.read and display it on screenReading a gif image with ImageIO.read and display it on screen
34.Read and write image files in the formats that the JDK supports. Multi-file images are supported.
35.A program for viewing imagesA program for viewing images
36.Thumbnail Tools