java 关于图片压缩,和等比例缩小 高清图

一,
***常用的图片压缩的方法;一般来说都是如下:


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

//就完了,就这么简单~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值