图片压缩

1.依赖

 <!-- 图片压缩 -->
            <dependency>
                <groupId>net.coobird</groupId>
                <artifactId>thumbnailator</artifactId>
                <version>0.4.8</version>
            </dependency>

2.实现

  //scale是可以指定图片的大小,值在0到1之间,1f就是原图大小,0.5就是原图的一半大小,这里的大小是指图片的长宽。
  //outputQuality是图片的质量,值也是在0到1,越接近于1质量越好,越接近于0质量越差。
  public static void imageCompress() throws IOException {
        Thumbnails.of("/Users/tbtx/Desktop/1.jpg")
                .scale(1f)
                .outputQuality(0.5f)
                .toFile("/Users/tbtx/Desktop/12.jpg");

    }

3.项目使用

   // 因为png格式图片无法进行压缩, 使用.outputFormat("jpg")输出为jpg格式可以实现压缩,输出为OutputStream转为InputStream再进行上传
    public InputStream imageCompress(MultipartFile file) throws IOException {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        Thumbnails.of(file.getInputStream())
                .scale(1f)
                .outputQuality(0.5f)
                .outputFormat("jpg")
                .toOutputStream(byteArrayOutputStream);
        InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
        return inputStream;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值