图片缩放的例子
import java.awt.Image; import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import junit.framework.TestCase; public class NarrowImg extends TestCase { /** * @param sourceImage 要缩放的源文件路径 * @param targetImage 缩放后目标文件前缀 * @param type 缩放后目标文件后缀 */ public boolean CreateThumbnail(String sourceImage,String targetImage,String type) throws Exception { double Ratio_width = 0.0; // 宽度的缩放比例 double Ratio_height = 0.0; // 高度的缩放比例 File F = new File(sourceImage); if (!F.isFile()) throw new Exception(F+ " is not image file error in CreateThumbnail!"); File targetFile = new File(targetImage+"."+type); BufferedImage Bi = ImageIO.read(F); // 假设图片宽 高 最大为120 120 Image Itemp = Bi.getScaledInstance(120, 120, BufferedImage.SCALE_SMOOTH); Ratio_width = 120.0 / Bi.getHeight(); Ratio_height = 120.0 / Bi.getWidth(); AffineTransformOp op = new AffineTransformOp(AffineTransform.getScaleInstance(Ratio_width, Ratio_height), null); Itemp = op.filter(Bi, null); try { ImageIO.write((BufferedImage) Itemp, type, targetFile); } catch (Exception ex) { throw new Exception(" ImageIo.write error in CreatThum.: "+ ex.getMessage()); } return true; } }
原图片
缩放后