我是靠谱客的博主 怕孤独店员,最近开发中收集的这篇文章主要介绍java 使用 Thumbnails 图片压缩,图片不失真,分辨率与清晰度不变,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
@Slf4j
public class App
{
public static void main( String[] args ) throws IOException {
byte[]bytes =
FileUtil.imageCompression("/xx/5645.jpg");
FileOutputStream outputStream = new FileOutputStream("/xx/003.jpg");
outputStream.write(bytes);
outputStream.close();
}
}
import lombok.extern.slf4j.Slf4j;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.resizers.configurations.ScalingMode;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
/**
* @Author: Garcia
* @CreateDate: 2019/12/10 15:52
* @Description: what it is class?
*/
@Slf4j
public class FileUtil {
/**
* 压缩图片,默认80%
*/
public static byte[] imageCompression(String path){
ByteArrayOutputStream out = null;
try {
File file = new File(path);
long length = file.length()/1024;
if (length<100){
byte[] fileByte = Files.readAllBytes(file.toPath());
return fileByte;
}
double qual = 0.50;
do {
out = new ByteArrayOutputStream();
Thumbnails.of(path).
scalingMode(ScalingMode.BICUBIC).
// 图片缩放90%, 不能和size()一起使用
scale(0.9).
// 图片质量压缩到50%
outputQuality(qual).
toOutputStream(out);
qual=qual-0.1;
}while ((out.size()/1024)>200);
return out.toByteArray();
} catch (IOException e) {
log.error("图片压缩失败",e);
}finally {
if (out!=null){
try {
out.close();
} catch (IOException e) {
log.error("关闭流失败",e);
}
}
}
return null;
}
}

 

最后

以上就是怕孤独店员为你收集整理的java 使用 Thumbnails 图片压缩,图片不失真,分辨率与清晰度不变的全部内容,希望文章能够帮你解决java 使用 Thumbnails 图片压缩,图片不失真,分辨率与清晰度不变所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部