package com.school.util;import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;import javax.imageio.ImageIO; /*** * <b>类名称:图片处理工具类</b>ImageUtils<br/>* <b>类描述:功能:缩放图像<br/>* */ public class ImageUtils {/*** 几种常见的图片格式*/public static String IMAGE_TYPE_GIF = "gif";// 图形交换格式public static String IMAGE_TYPE_JPG = "jpg";// 联合照片专家组public static String IMAGE_TYPE_JPEG = "jpeg";// 联合照片专家组public static String IMAGE_TYPE_BMP = "bmp";// 英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式public static String IMAGE_TYPE_PNG = "png";// 可移植网络图形public static String IMAGE_TYPE_PSD = "psd";// Photoshop的专用格式Photoshop/*** * scale(缩放图像(按比例缩放))<br/>* * @param in* 源图像文件* @param scale* 缩放系数,缩小时小于1(如:0.7 0.8),放大时大于1),放大时大于1* @return* @return BufferedInputStream* @exception* @since 1.0.0*/public static void scale(String srcImageFile,String result, float scale) {try {System.out.println("源文件大小===="+new File(srcImageFile).length());BufferedImage src = ImageIO.read(new File(srcImageFile)); // 读入文件int width = src.getWidth(); // 得到源图宽int height = src.getHeight(); // 得到源图长// 计算新的宽度和高度width = Integer.valueOf(new Float(width * scale).intValue());height = Integer.valueOf(new Float(height * scale).intValue());Image image = src.getScaledInstance(width, height, Image.SCALE_DEFAULT);BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);Graphics g = tag.getGraphics();g.drawImage(image, 0, 0, null); // 绘制缩小后的图 g.dispose();ImageIO.write(tag, "JPEG", new File(result));// 输出到文件流} catch (IOException e) {e.printStackTrace();}} }