前言
项目部署之后,发现对图片资源的访问速度太慢,租的服务器带宽为1Mbps,用户上传的图片多为手机拍摄,一般大小在5MB左右,如果不压缩,那网站基本没人愿意使用的状态。于是寻找压缩图片的方法
本片文章的操作借鉴自:
https://my.oschina.net/u/4327542/blog/3373337
https://blog.youkuaiyun.com/qq_25508039/article/details/82257436
https://blog.youkuaiyun.com/hanerer1314/article/details/96175436
https://www.jianshu.com/p/04d04afc34fd
上手
1、导入依赖
<!--图片处理thumbnailator-->
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.13</version>
</dependency>
2、使用
使用直接导包然后调用方法就行了,具体什么方法是做什么的,上面那几篇文章已经讲的非常详细了
public static void thumbnail(MultipartFile file) {
String originalFilename = file.getOriginalFilename(); //原文件名
String ext = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);//获取后缀
String name = UUID.randomUUID().toString().replaceAll("-", "");//新文件名
try {
//先压缩并保存图片
Thumbnails.of(file.getInputStream()).scale(1.00f) //压缩尺寸 范围(0.00--1.00)
.outputQuality(0.50f) //压缩质量 范围(0.00--1.00)
.outputFormat(ext) //输出图片后缀
.toFile("D:\\var\\images\\" + name); //输出路径
} catch (IOException e) {
log.error(e.getMessage());
}
}