Java tutorial
/* * ImageUtil.java * * Created on 15 May 2006, 01:12 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; /** * Provides utility methods for handling images (<tt>java.awt.BufferedImage</tt> * ) * * @author Ian McDonagh */ public class ImageUtil { /** * Creates a scaled copy of the source image. * * @param src * source image to be scaled * @param width * the width for the new scaled image in pixels * @param height * the height for the new scaled image in pixels * @return a copy of the source image scaled to <tt>width</tt> x * <tt>height</tt> pixels. */ public static BufferedImage scaleImage(BufferedImage src, int width, int height) { Image scaled = src.getScaledInstance(width, height, 0); BufferedImage ret = null; /* * ColorModel cm = src.getColorModel(); if (cm instanceof * IndexColorModel) { ret = new BufferedImage( width, height, * src.getType(), (IndexColorModel) cm ); } else { ret = new * BufferedImage( src.getWidth(), src.getHeight(), src.getType() ); } * Graphics2D g = ret.createGraphics(); //clear alpha channel Composite * comp = g.getComposite(); * g.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, * 0.0f)); Rectangle2D.Double d = new * Rectangle2D.Double(0,0,ret.getWidth(),ret.getHeight()); g.fill(d); * g.setComposite(comp); */ ret = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics2D g = ret.createGraphics(); // copy image g.drawImage(scaled, 0, 0, null); return ret; } }