图片的缩放(放大缩小)
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(); } } }