项目中需求需要将图片翻转,百度一波后发现了 Thumbnails。很好用的工具类。这里记下简单的使用方法。
引入jar包
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
部分API
图片翻转
@SneakyThrows
private static void testXuanZhuan() {
Thumbnails.of("F:\\yan.jpg").scale(1.0).rotate(90).toFile("F:\\image/xuanzhuan_90.jpg");
Thumbnails.of("F:\\yan.jpg").scale(1.0).rotate(-90).toFile("F:\\image/xuanzhuan_-90.jpg");
}
按比例缩放
@SneakyThrows
private static void testBiLiSuoFang() {
Thumbnails.of("F:\\yan.jpg").scale(0.5f).toFile("F:\\image/suofang_0.5.jpg");
Thumbnails.of("F:\\yan.jpg").scale(1.5f).toFile("F:\\image/suofang_1.5.jpg");
}
按大小缩放
@SneakyThrows
private static void testDaXiaoSuoFang() {
Thumbnails.of("F:\\yan.jpg").size(120, 120).toFile("F:\\image/suofang_120x120.jpg");
Thumbnails.of("F:\\yan.jpg").size(120, 120).keepAspectRatio(false).toFile("F:\\image/suofang_120x120_1.jpg");
}
水印
@SneakyThrows
private static void testShuiYin() {
Thumbnails.of("F:\\yan.jpg").scale(1.0).watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("F:\\shuiyin.png")), 0.5f)
.outputQuality(0.8f).toFile("F:\\image/shuiyin.jpg");
}
裁剪
@SneakyThrows
private static void testCaiJian() {
Thumbnails.of("F:\\yan.png").scale(1.0).sourceRegion(Positions.CENTER, 120, 120)
.toFile("F:\\image/yan_center.jpg");
Thumbnails.of("F:\\yan.png").scale(1.0).sourceRegion(Positions.BOTTOM_RIGHT, 120, 120)
.toFile("F:\\image/yan_bootom_right.jpg");
Thumbnails.of("F:\\yan.png").scale(1.0).sourceRegion(400, 300, 200, 200)
.toFile("F:\\image/yan_local.jpg");
}
格式转换
@SneakyThrows
private static void testCaiJian() {
Thumbnails.of("F:\\yan.png").scale(1.0).outputFormat("jpg").toFile("F:\\image/yan");
Thumbnails.of("F:\\yan.png").scale(1.0).outputFormat("jpg").toFile("F:\\image/yan_1.jpg");
}
输出流
@SneakyThrows
private static void testStream() {
OutputStream os = new FileOutputStream("F:\\image/yan_stream.png");
Thumbnails.of("F:\\yan.png").scale(1.0).toOutputStream(os);
}
``
|