java批量图片压缩处理
java压缩图片处理,递归循环找到当前目录下所有的图片进行压缩处理
java压缩图片
package com.**.**.visit.utils;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.**.**.common.utils.StringUtils;
import net.coobird.thumbnailator.Thumbnails;
public class ImageHelper {
public static void main(String[] args) {
try {
filePath("/home/**/**");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void filePath(String path) throws IOException {
if (StringUtils.isBlank(path)) {
path = "/home/**/**";
}
File file = new File(path);
File[] files = file.listFiles();
if (files == null) {
return;
}
for (int i = 0; i < files.length; i++) {
File file1 = files[i];
String pathXia = path + "/" + file1.getName();
if (isImg(pathXia)) {
File fileImg = new File(pathXia);
// 单位kb 大约多少kb的文件才进行压缩
long fileSize = fileImg.length() / 1024;
if (fileSize > 1024) {
System.out.println("路径" + pathXia);
try {
Thumbnails.of(pathXia).scale(1f).outputQuality(0.25f).toFile(pathXia);
} catch (Exception e) {
e.printStackTrace();
}
File fileImgh = new File(pathXia);
// 单位kb
long fileSizeh = fileImgh.length() / 1024;
System.out.println("压缩成功" + pathXia + "压缩前大小" + fileSize + "压缩后大小" + fileSizeh);
}
continue;
}
filePath(pathXia);
}
}
public static boolean isImg(String filePath) {
File file = new File(filePath);
try {
BufferedImage bi = ImageIO.read(file);
if (bi == null) {
return false;
} else {
return true;
}
} catch (Exception e) {
// System.out.println("他不是一个图片" + filePath);
}
return false;
}
}