/*
* ImageUtil.java
*
* Created on 15 May 2006, 01:12
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package com.inet.gradle.setup.image.image4j.util;
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;
}
}