JAVA 图片压缩及png转jpg
ByteArrayOutputStream out = new ByteArrayOutputStream();
//图片数据
byte[] old = fileCenterService.downloadFile("0myqr-cjxg0g-000ph");
System.out.println("原来大小:" + old.length/1024);
ByteArrayInputStream in = new ByteArrayInputStream(old);
//压缩 scale 比例 outputQuality 质量
Thumbnails.of(in).scale(0.3f).outputQuality(0.35f).toOutputStream(out);
//原图是png 转格式
ImageIcon src = new ImageIcon(out.toByteArray());
BufferedImage image = new BufferedImage(src.getIconWidth(),
src.getIconHeight(), BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.setColor(Color.white);
g.fillRect(0, 0, src.getIconWidth(), src.getIconHeight());
g.drawImage(src.getImage(), 0, 0, null);
g.dispose();
out = new ByteArrayOutputStream();
//jpg
ImageIO.write(image, "jpg", out);
System.out.println("压缩后大小:" + out.toByteArray().length/1024);
//输出
FileOutputStream fileOutputStream = new FileOutputStream("D:\\test\\aaa.jpg");
fileOutputStream.write(out.toByteArray());
fileOutputStream.close();
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>