【工具类】图片压缩工具类,可压缩jpg, png等图片

简介: 【工具类】图片压缩工具类,可压缩jpg, png等图片

经常会遇到图片压缩,这里记录一下两个方式

一、在线图片压缩

访问www.tinypng.com在线压缩

二、编写一个Java程序

这里写一个图片压缩类,可以拿来即用。

package com.uiotsoft.util;
import cn.hutool.core.util.StrUtil;
import net.coobird.thumbnailator.ThumbnailParameter;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.name.Rename;
import java.io.File;
import java.io.IOException;
/**
 * 这是一个类
 *
 * @author lpt
 * @date 2019/12/10
 */
public class CompressionImage {
    public static void main(String[] args) {
        try {
            // 文件所在的位置
            Thumbnails.of(new File("F:\\uiotweb-img").listFiles())
                    // 压缩比例,可调整
                    .scale(1f)
                    // 压缩质量,可调整,数值越小,图片越模糊
                    .outputQuality(0.1f)
                    // 输出的格式,png的图片无法压缩
                    .outputFormat("jpg")
                    .toFiles(new Rename() {
                        @Override
                        public String apply(String var1, ThumbnailParameter thumbnailParameter) {
                            System.out.println("var1: " + var1);
                            String fileName = StrUtil.removeSuffix(var1, ".png");
                            System.out.println("fileName: " + fileName);
                            return fileName;
                        }
                    });
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
相关文章
|
Java BI 图形学
java实现图片压缩功能
java实现图片压缩功能
1158 0
|
存储 安全 Java
解析 Java 的 MultipartFile 接口:实现文件上传的全面指南
在现代的 Web 开发中,文件上传是一个常见的需求,而 Java 中的 `MultipartFile` 接口正是用来处理这类任务的重要工具。无论是上传图片、音频、视频还是其他文件类型,`MultipartFile` 都提供了便捷的方法来处理文件的接收和存储。本文将带您深入探索 Java 中的 `MultipartFile` 接口,揭示其功能、用法以及在实际开发中的应用场景。
|
3月前
|
数据采集 缓存 自然语言处理
爱企查 item_get - 获取企业详情接口对接全攻略:从入门到精通
爱企查item_get接口(basicInfo)通过企业名称、信用代码等关键词,获取企业工商信息、联系方式、经营状态、变更记录及风险数据,适用于供应商筛选、风控合规等场景。接口基于HTTPS+Token认证,数据源自官方权威渠道,字段完整、更新及时。本指南涵盖权限申请、Python对接、调试排错与生产优化,提供全链路实操指导,助力企业高效安全集成。
|
9月前
|
人工智能 安全 Java
Spring Boot 中使用 Function 和异步线程池处理列表拆分任务并汇总结果
在Java开发中,处理大规模数据时常常需要将列表拆分为多个子列表进行异步处理并汇总结果。本文介绍如何在Spring Boot中使用Function和异步线程池实现高效且可维护的代码,涵盖结果封装、线程池配置、列表拆分处理及结果汇总等关键步骤。
392 0
|
自然语言处理 JavaScript Java
Spring 实现 3 种异步流式接口,干掉接口超时烦恼
本文介绍了处理耗时接口的几种异步流式技术,包括 `ResponseBodyEmitter`、`SseEmitter` 和 `StreamingResponseBody`。这些工具可在执行耗时操作时不断向客户端响应处理结果,提升用户体验和系统性能。`ResponseBodyEmitter` 适用于动态生成内容场景,如文件上传进度;`SseEmitter` 用于实时消息推送,如状态更新;`StreamingResponseBody` 则适合大数据量传输,避免内存溢出。文中提供了具体示例和 GitHub 地址,帮助读者更好地理解和应用这些技术。
2833 122
|
Java
Java通过HttpClient从外部url下载文件到本地
该Java程序旨在通过URL将外部网络文件(如图片)下载至本地,并解决防盗链问题。首先,它通过`HttpGet`请求获取远程文件,并通过设置`Referer`头防止防盗链。然后,根据响应内容类型确定文件后缀并保存至指定路径。测试表明,程序能够成功下载文件。
1695 8
Java通过HttpClient从外部url下载文件到本地
|
存储 JavaScript 前端开发
Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】
这篇文章介绍了在Vue中实现图片上传到阿里云OSS对象存储服务的完整流程,包括服务端签名直传的前提知识、后端设置、前端组件封装以及图片上传和回显的效果展示。

热门文章

最新文章