图片压缩工具

图片处理依赖

        <dependency>
            <groupId>net.coobird</groupId>
            <artifactId>thumbnailator</artifactId>
            <version>0.4.8</version>
            <scope>test</scope>
        </dependency>

压缩工具类


package com.example.demo;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import net.coobird.thumbnailator.Thumbnails;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.File;
import java.util.*;
import java.util.stream.Collectors;

@SpringBootTest
public class ExcelDemo {
    @Test
    public void test2() {
        try {
        //输入输出文件夹位置 图片前缀有压缩为已压缩图片
            File file1 = new File("C:\\Users\\Administrator\\Desktop");
            List<String> strings = Arrays.asList("bmp,jpg,png,tif,gif,pcx,tga,exif,fpx,svg,psd,cdr,pcd,dxf,ufo,eps,ai,raw,WMF,webp,avif,apng".split(","));
            //strings.forEach(System.out::println);
            //Arrays.stream(file1.listFiles()).forEach(System.out::println);
            List<File> list = Arrays.stream(file1.listFiles()).filter(s -> {
                if (s.toString().contains(".")) {
                    String substring = s.toString().substring(s.toString().indexOf(".")+1);
                    return strings.contains(substring);
                }
                return false;
            }).collect(Collectors.toList());
            if (CollUtil.isNotEmpty(list)) {
                List<String> collect = list.stream().map(s -> s.getName()).filter(s->s.startsWith("压缩后")).map(s->s.substring(3)).collect(Collectors.toList());
                for (File file : list) {
                    String name = file.getName();
                    if (!name.startsWith("压缩后") && !collect.contains(name)) {
                        Thumbnails.of(file)
                                .size(38, 38).keepAspectRatio(false)
                                .toFile(file1 + "\\压缩后" + name);
                        System.out.println("执行");
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("结束");
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值