Java图片压缩处理---thumbnailator库

本文介绍了如何使用thumbnailator库对Java中的图片进行压缩处理,包括添加依赖、常用API的使用,如指定尺寸缩放、按比例缩放和设置输出质量。特别推荐使用特定的BufferedImage方法,因其速度最快。需要注意的是,测试中发现thumbnailator不支持png格式的压缩,尽管尺寸可以压缩,但内存占用会增加。

使用情况

当客户端显示大量图片时,经常由于图片过大短时间内加载不出来,这时我们需要在服务器对用户上传的图片进行简单的压缩处理。


添加依赖

<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
</dependency>

常用API说明

.of(String path):图片源路径
.size(int x,int y):指定长宽进行缩放
.scale(double v):按比例缩放(0~N)
.outputQuality(double v):输出质量,最大1 (0~1)
.outputFormat():输出的图片格式

  • 指定大小进行缩放
Thumbnails.of("demo.jpg")
        .size(200, 300)
        .toFile("demo1.jpg");
  • 按照比例进行缩放
Thumbnails.of("demo.jpg")
        .scale(0.25f)
        .toFile("demo1.jpg");
  • 输出图片到BufferedImage
BufferedImage thumbnail = Thumbnails.of("demo.jpg")
        .scale(1f)
        .asBufferedImage();
ImageIO.write(thumbnail, "jpg", new File("kkk.jpg"));

目前我测试的第三种BufferedImage速度最快,推荐使用!!!

测试发现,png格式的图片压缩暂不支持。
png图片尺寸可正常压缩, 但压缩后所占内存会变大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值