码迷,mamicode.com
首页 > 编程语言 > 详细

Java 图片压缩

时间:2020-06-05 18:00:51      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:height   tip   upload   文件   multipart   img   nbsp   buffer   ima   

我们日常开发中,经常会遇到图片太大然后加载慢的问题,话不多说,直接上图片压缩代码

入参: MultipartFile file

String fileOrigName = file.getOriginalFilename();
String fileName = String.format("%s.%s",
        UUID.randomUUID().toString(),
        StringUtils.substringAfter(fileOrigName, ".")
);
if(fileOrigName.contains("png") || fileOrigName.contains("jpg") || fileOrigName.contains("jpeg")) {
       // 图片压缩
       InputStream inputStream = file.getInputStream();
       // 把图片读入到内存中
       BufferedImage bufImg = ImageIO.read(inputStream);
       // 压缩代码 存储图片文件byte数组
       ByteArrayOutputStream bos = new ByteArrayOutputStream();
       // 防止图片变红
       BufferedImage newBufferedImage = new BufferedImage(bufImg.getWidth()-100, bufImg.getHeight()-100, BufferedImage.TYPE_INT_RGB);
       newBufferedImage.createGraphics().drawImage(bufImg, 0, 0, Color.WHITE, null);
       // 先转成jpg格式来压缩,然后在通过OSS来修改成源文件本来的后缀格式
       ImageIO.write(newBufferedImage, "jpg", bos);
       // 获取输出流
       inputStream = new ByteArrayInputStream(bos.toByteArray());
       // 上传OSS
       OssUtil.ins().uploadFile(fileName, inputStream);
}

  

 

Java 图片压缩

标签:height   tip   upload   文件   multipart   img   nbsp   buffer   ima   

原文地址:https://www.cnblogs.com/pzyin/p/13051106.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!