zoukankan      html  css  js  c++  java
  • Java 图片压缩

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

    入参: 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);
    }
    

      

  • 相关阅读:
    【BZOJ2806】【CTSC2012】—熟悉的文章(二分答案+广义后缀自动机+单调队列优化dp)
    2017-2-15
    2017-2-14
    2017-2-13
    CSS居中
    2017-2-10
    微信小程序
    2017-2-9
    2017-2-8
    基础知识再整理: 01
  • 原文地址:https://www.cnblogs.com/pzyin/p/13051106.html
Copyright © 2011-2022 走看看