Java中图片压缩类库 thumbnailator 的使用

Java中图片压缩技术总结
一、thumbnailator类库简介
页面在显示大量图片时加载速度过慢,这时需要对图片进行缩略图处理,可以加快网页渲染。
Thumbnailator是一个用来生成图像缩略图的 Java类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。
二、thumbnailator类库的使用
1、添加maven依赖

<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
</dependency>

2、Thumbnails常用API
1)of() --图片源
2)size()
size指定大小进行缩放 size(宽度, 高度)
若图片横比200小,高比300小,不变 、
若图片横比200小,高比300大,高缩小到300,图片比例不变、
若图片横比200大,高比300小,横缩小到200,图片比例不变 、
若图片横比200大,高比300大,图片按比例缩小,横为200或高为300
3)rotate()
rotate(角度) 正数:顺时针 负数:逆时针
4)scale()
scale按照比例进行缩放。范围:0.0~N
5)outputQuality()
outputQuality:输出的图片质量,范围:0.0~1.0,1为最高质量
6)outputFormat()
outputFormat:输出的图片格式。注意使用该方法后toFile()方法不要再含有文件类型的后缀了,否则会生成 IMG_20161229_114806.jpg.jpg 的图片。
7)watermark --添加水印

3、使用案例
1)指定大小进行缩放

Thumbnails.of(filePath)
        .size(200, 300)
        .toFile(file.getAbsolutePath() + "_200x300.jpg");

2)按照比例进行缩放

Thumbnails.of(filePath)
        .scale(0.25f)
        .toFile(file.getAbsolutePath() + "_25%.jpg");

3)不按比例,指定大小进行缩放

Thumbnails.of(filePath)
        .size(200, 200)
        .keepAspectRatio(false)
        .toFile(file.getAbsolutePath() + "_200x200.jpg");

4)输出图片到流对象

OutputStream os = new FileOutputStream(file.getAbsolutePath() + "_OutputStream.png");
Thumbnails.of(filePath)
        .size(1280, 1024)
        .toOutputStream(os);

5)输出图片到BufferedImage

BufferedImage thumbnail = Thumbnails.of(filePath)
        .size(1280, 1024)
        .asBufferedImage();
ImageIO.write(thumbnail, "jpg", new File(file.getAbsolutePath()+"_BufferedImage.jpg"));

你可能感兴趣的:(Java中图片压缩类库 thumbnailator 的使用)