Mega Code Archive

 
Categories / Java / 2D Graphics GUI
 

Get fixing preview image

/**  * 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";          /**      * get fixing preview image rsize <br/>      * Exif not apply: calculate by formula: iHeight/iWidth*rsize < (lbHeight-10)      * Exif apply: calculate by formula: iHeight/iWidth*rsize < (lbHeight-80-10)      * @param imageFile      * @param lbWidth      * @param lbHeight      * @param applyExif      * @return      */     public static int getFixedPreviewSize(File imageFile, int lbHeight, boolean applyExif){       int rsize = 0;       ImageIcon image = new ImageIcon(imageFile.getPath());       int iHeight = image.getIconHeight();       int iWidth = image.getIconWidth();       image = null;       if(iHeight > iWidth){         if(!applyExif){             rsize = lbHeight-10;         } else {           rsize = lbHeight-90;         }       } else {         if(!applyExif){           rsize = (lbHeight-10)*iWidth/iHeight;         } else {           rsize = (lbHeight-90)*iWidth/iHeight;         }       }       return rsize;     } }