ImageUtil.java Source code

Java tutorial

Introduction

Here is the source code for ImageUtil.java

Source

/**
 * COPYRIGHT. Harry Wu 2010. ALL RIGHTS RESERVED.
 * Project: EasyPhoto
 * Author: Harry Wu <harrywu304@gmail.com>
 * Created On: Jun 28, 2008 5:12:21 PM
 *
 */
//package org.shaitu.easyphoto.util;

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.IndexColorModel;
import java.awt.image.WritableRaster;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageTypeSpecifier;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.plugins.jpeg.JPEGImageWriteParam;
import javax.imageio.stream.ImageOutputStream;
import javax.swing.ImageIcon;

/**
 * userful methods about image
 * @author harry
 */
public class ImageUtil {
    public final static String JPEG = "jpeg";
    public final static String JPG = "jpg";
    public final static String BMP = "bmp";
    public final static String PNG = "png";
    public final static String GIF = "gif";
    public final static String TIFF = "tiff";
    public final static String TIF = "tif";

    /**
     * create new image from source image
     * @param srcImg source image
     * @param targetWidth target image width
     * @param targetHeight target image height
     * @return new image with specify width and height
     */
    public static BufferedImage createNewImage(BufferedImage srcImg, int targetWidth, int targetHeight) {
        BufferedImage targetImg = null;
        int type = srcImg.getType();
        if (type == BufferedImage.TYPE_CUSTOM) {
            ColorModel cm = srcImg.getColorModel();
            WritableRaster raster = cm.createCompatibleWritableRaster(targetWidth, targetHeight);
            boolean alphaPremultiplied = cm.isAlphaPremultiplied();
            targetImg = new BufferedImage(cm, raster, alphaPremultiplied, null);
        } else {
            targetImg = new BufferedImage(targetWidth, targetHeight, type);
        }
        return targetImg;
    }

}