Java图片工具类
压缩需要引入第三方jar包,以maven项目为例:
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
工具类方法
/***
* 通过流压缩文件(默认压缩原来长宽0.6倍)
* @author zg-bill
* @date 2022/3/15 17:16
* @param inputStream: 文件输入流
* @param suffix: 文件类型
* @return: java.io.InputStream
**/
public static InputStream compressImage(InputStream inputStream , String suffix) {
OutputStream outputStream = new ByteArrayOutputStream();
try {
Thumbnails.of(inputStream)
.scale(0.6f)
.outputFormat(suffix).toOutputStream(outputStream);
} catch (Exception e) {
e.printStackTrace();
}finally {
if (inputStream != null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return oupToInp(outputStream);
}
/***
* OutputStream转InputStream
* @author zg-bill
* @date 2022/3/15 17:29
* @param out:
* @return: java.io.ByteArrayInputStream
**/
private static ByteArrayInputStream oupToInp(OutputStream out){
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos = (ByteArrayOutputStream) out;
return new ByteArrayInputStream(baos.toByteArray());
}catch (Exception e){
e.printStackTrace();
}finally {
if (out != null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
本文介绍了如何在Java项目中利用Thumbnailator库进行图片文件的压缩,提供了压缩方法并展示了如何将OutputStream转换为InputStream的过程。

398

被折叠的 条评论
为什么被折叠?



