/**
* 传入图片文件的输入流
*/
public static InputStream compressFile(InputStream input) throws IOException {
//1-压缩图片
BufferedImage bufImg = ImageIO.read(input);
// 把图片读入到内存中
//压缩:宽度100px,长度自适应;质量压缩到0.1
if (bufImg != null) {
bufImg = Thumbnails.of(bufImg).width(100).keepAspectRatio(true).outputQuality(0.2f).asBufferedImage();
// 存储图片文件byte数组
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// 图片写入到 ImageOutputStream
ImageIO.write(bufImg, "png", bos);
input = new ByteArrayInputStream(bos.toByteArray());
int available = input.available();
//2-如果大小超过90KB,继续压缩
if (available > 90000) {
compressFile(input);
}
return input;
}
return input;
}
java 文件图片压缩
最新推荐文章于 2024-06-29 03:24:23 发布