package arcane.ui.util; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.awt.image.ConvolveOp; import java.awt.image.Kernel; import java.io.File; import java.io.IOException; import java.io.InputStream; /** * <p>ImageUtil class.</p> * * @author Forge * @version $Id: $ */ public class ImageUtil { /** * <p>getImage.</p> * * @param stream a {@link java.io.InputStream} object. * @return a {@link java.awt.image.BufferedImage} object. * @throws java.io.IOException if any. */ static public BufferedImage getImage(InputStream stream) throws IOException { Image tempImage = ImageIO.read(stream); BufferedImage image = new BufferedImage(tempImage.getWidth(null), tempImage.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = image.createGraphics(); g2.drawImage(tempImage, 0, 0, null); g2.dispose(); return image; } /** * <p>getImage.</p> * * @param file a {@link java.io.File} object. * @return a {@link java.awt.image.BufferedImage} object. * @throws java.io.IOException if any. */ static public BufferedImage getImage(File file) throws IOException { Image tempImage = ImageIO.read(file); BufferedImage image = new BufferedImage(tempImage.getWidth(null), tempImage.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = image.createGraphics(); g2.drawImage(tempImage, 0, 0, null); g2.dispose(); return image; } /** * <p>getBlurredImage.</p> * * @param image a {@link java.awt.image.BufferedImage} object. * @param radius a int. * @param intensity a float. * @return a {@link java.awt.image.BufferedImage} object. */ static public BufferedImage getBlurredImage(BufferedImage image, int radius, float intensity) { float weight = intensity / (radius * radius); float[] elements = new float[radius * radius]; for (int i = 0, n = radius * radius; i < n; i++) elements[i] = weight; ConvolveOp blurOp = new ConvolveOp(new Kernel(radius, radius, elements)); return blurOp.filter(image, null); } }