二话不说,直接贴出代码:
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class imageTest {
//测试方法
public static void main(String[] args){
//定义源文件
File sourcefile = new File("D:\\qwe.png");
//定义压缩后的文件名
File newFile = new File("D:\\xx.png");
try {
imageCompress(sourcefile,newFile, 1028, 800,"png");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 生成缩略图
* @param sourceFile 源始文件路径
* @param destFile 目标文件路径
* @param destWidth 目标文件宽度
* @param destHeight 目标文件高度
* @return flag 是否写入成功
* @throws IOException
*/
public static boolean imageCompress(File sourceFile, File destFile,int destWidth,int destHeight,String imageTpye) throws IOException{
//保存源文件图像
Image srcImage = null;
//保存目标文件图像
BufferedImage tagImage = null;
//判断目标文件图像是否绘制成功
boolean flag = false;
//判断图片文件是否存在以及是否为文件类型
if(sourceFile.exists() && sourceFile.isFile()){
//读取图片文件属性
srcImage = ImageIO.read(sourceFile);
//生成目标缩略图
tagImage = new BufferedImage(destWidth,destHeight,BufferedImage.TYPE_INT_RGB);
//根据目标图片的大小绘制目标图片
tagImage.getGraphics().drawImage(srcImage,0,0,destWidth,destHeight,null);
flag = ImageIO.write(tagImage, imageTpye, destFile);
}else{
flag = false;
}
return flag;
}
}