说到图像视频处理领域,JAVA肯定不是最擅长的,像图像处理利器OpenCV,视频处理利器FFmpeg都是各领域的佼佼者。但是OpenCV和FFmpeg使用起来比较麻烦,安装软件是必不可少的。
今天给大家介绍的是一款纯Java开源类库Thumbnailator,由google提供,试用之后感觉效果非常好。目前支持的操作有:图片压缩、图片缩放,图片裁剪,水印,旋转等。
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
方法一,压缩后宽高不变,outputQuality质量度,范围0~1,数字越大,图片质量越好。
Thumbnails.of("D:/source.jpg").scale(1f).outputQuality(0.3f)
.outputFormat("jpg").toFile("D:/target.jpg");
方法二,按指定宽高压缩Thumbnails.of("D:/source.jpg").size(50, 50).outputQuality(0.9f)
.outputFormat("jpg").toFile("D:/target.jpg");
方法一,按照宽高比例缩放
Thumbnails.of("D:/source.jpg").scale(0.8f).outputQuality(1f)
.outputFormat("jpg").toFile("D:/target.jpg");
方法二,按照指定宽高缩放Thumbnails.of("D:/source.jpg").size(50, 50).keepAspectRatio(false)
.outputFormat("jpg").toFile("D:/target.jpg");
在指定坐标区域裁剪400*400的图片
Thumbnails.of("D:/source.jpg").sourceRegion(700, 500, 100, 100)
.size(50, 50).outputFormat("jpg").toFile("D:/target.jpg");
Thumbnails.of("D:/source.jpg").size(1000, 800)
.watermark(Positions.CENTER, ImageIO.read(new File("D:/watermark.png")), 0.7f)
.outputQuality(0.7f).toFile("D:/target.jpg");