获取图片的像素
1 2 3
| BufferedImage bufferedImage = ImageIO.read(file); int width = bufferedImage.getWidth(); int height = bufferedImage.getHeight();
|
压缩图片
使用一个开源的图片处理库 Thumbnailator,有一直在维护的。
1 2 3 4 5
| <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.14</version> </dependency>
|
压缩时,按比例缩放,必须同时满足最大不超过size方法里面的width和height参数值。
直接转为文件输出:
1 2 3 4 5 6
| String inputImage = "input.jpeg"; String outputImage = "out.jpeg";
Thumbnails.of(inputImage) .size(100, 60) .toFile(outputImage);
|
也可以转为输出流,再转为输入流供其他使用:
1 2 3 4 5 6 7 8 9 10
| String inputImage = "input.jpeg"; String outputImage = "out.jpeg";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Thumbnails.of(inputImage) .size(100, 60) .toOutputStream(baos);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
|
注意关闭文件。