一,
***常用的图片压缩的方法;一般来说都是如下:
File f = multipartFileToFile(file);
BufferedImage bi = ImageIO.read(f);
//选择图像平滑度比缩放速度具有更高优先级的图像缩放算法。
Image itemp = bi.getScaledInstance(width, height,
bi.SCALE_AREA_AVERAGING);
//然后我的需求是上传fast,或者图片服务器 ,但是大部分都是直接生成文件到本地
//文件的转换
BufferedImage bufferedImage = (BufferedImage) itemp;
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, “jpg”, out);
//ByteArrayOutputStream 转化为 byte[]
byte[] imageByte = out.toByteArray();
//将 byte[] 转为 MultipartFile
MultipartFile file2 = new ConvertToMultipartFile(imageByte, “newNamepic”, “pic1”, “jpg”, imageByte.length);
//接下来上传文件
上传方法就不写了,一般都是自己的工具类
//接下来一定要记得删除你的临时文件;(!!!)
//此处 请注意,如果你是第一次写关于IO的文件处理模式;
//那么请你一定要记得删除你的临时文件;别问为啥,问就是血的教训
//删除文件的方法
if (file != null) {
File del = new File(file.toURI());
del.delete();
System.out.println(“删除临时文件”);
}
================以上是第一种方法
二:
第二种方法可就太简单了,强烈建议大家去用
Thumbnails 工具类, 谷歌开源的;非常好用而且非常简单;
//这个地方是一个文件类型转换工具,从 multipartFile ==> 转成FIle文件
File f = multipartFileToFile(file);
// 这个地方就写入你的宽高,就完事了,如果需要输出到本地,那么你直接.toFile就可以了
Thumbnails.Builder bu = Thumbnails.of(f).size(400, 600);
//就完了,就这么简单~