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();
}
}
}