Java 通过byte[]修改上传图片的尺寸、压缩图片尺寸
private byte[] compressImg(byte[] byteArray, Integer length, Integer width) {
ByteArrayInputStream in = new ByteArrayInputStream(byteArray);
byte[] byteArrayNew = new byte[0];
Thumbnails.Builder<? extends InputStream> builder = null;
builder = Thumbnails.of(in).size(length, width).keepAspectRatio(false);
try {
BufferedImage bufferedImage = builder.asBufferedImage();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
BufferedImage tag;
tag = new BufferedImage(bufferedImage.getWidth(), bufferedImage.getHeight(), BufferedImage.TYPE_INT_BGR);
Graphics g = tag.getGraphics();
g.drawImage(bufferedImage, 0, 0, null); // 绘制缩小后的图
g.dispose();
bufferedImage = tag;
boolean flag = ImageIO.write(bufferedImage, "jpg", baos);
if (!flag) {
log.error("图片压缩失败");
}
log.info("图片压缩成功");
byteArrayNew = baos.toByteArray();
} catch (IOException e) {
e.printStackTrace();
log.error("图片压缩失败");
}
return byteArrayNew;
}