Thumbnailator使用
一、图片缩放
来自original.jpg的图像被调整大小,然后保存到thumbnail.jpg
1、size(宽度, 高度),图片通过高度或宽度按比例缩小
Thumbnails.of(new File("original.jpg"))
.size(160, 160)
.toFile(new File("thumbnail.jpg"));
Thumbnails.of("original.jpg")
.size(160, 160)
.toFile("thumbnail.jpg");
File file = new File("original.jpg");
Thumbnails.of(new FileInputStream(file))
.size(160, 160)
.toFile("thumbnail.jpg");
2、scale(比例),通过指定比例缩放
Thumbnails.of("original.jpg")
.scale(0.75)
.toFile("thumbnail.jpg");
3、keepAspectRatio(false)是否按比例缩放,默认是按照比例缩放的
Thumbnails.of("original.jpg")
.size(160, 160)
.keepAspectRatio(false)
.toFile("thumbnail.jpg");
二、旋转
1、rotate(角度),正数:顺时针,负数:逆时针
Thumbnails.of("original.jpg")
.rotate(90)
.toFile("thumbnail.jpg");
三、水印
1、.watermark()添加水印
- 可以从Positions枚举中选择定位
- 可以通过更改最后一个参数来调整缩略图的不透明度(或相反地,透明度),其中0.0f是缩略图是完全透明的,而1.0f是水印是完全不透明的
Thumbnails.of("original.jpg")
.watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("watermark.png")), 0.5f)
.outputQuality(0.8)
.toFile("thumbnail.jpg");
四、创建缩略图并写入OutputStream
OutputStream os = ...;
Thumbnails.of("large-picture.jpg")
.size(200, 200)
.outputFormat("png")
.toOutputStream(os);
五、将缩略图写入特定目录
此示例将获取源图像,并将缩略图作为文件写入destinationDir(path / to / output目录),同时重命名它们,增加前置文件名。
File destinationDir = new File("path/to/output");
Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg")
.size(200, 200)
.toFiles(destinationDir, Rename.PREFIX_DOT_THUMBNAIL);
因此,缩略图将被写为以下文件:
path/to/output/thumbnail.apple.jpg
path/to/output/thumbnail.banana.jpg
path/to/output/thumbnail.cherry.jpg
写入指定目录时也可以保留原始文件名:
File destinationDir = new File("path/to/output");
Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg")
.size(200, 200)
.toFiles(destinationDir, Rename.NO_CHANGE);
因此,缩略图将被写为以下文件:
path/to/output/apple.jpg
path/to/output/banana.jpg
path/to/output/cherry.jpg