Java 图片压缩
我们日常开发中,经常会遇到图片太大然后加载慢的问题,话不多说,直接上图片压缩代码
入参: MultipartFile file
String fileOrigName = file.getOriginalFilename();
String fileName = String.format("%s.%s",
UUID.randomUUID().toString(),
StringUtils.substringAfter(fileOrigName, ".")
);
if(fileOrigName.contains("png") || fileOrigName.contains("jpg") || fileOrigName.contains("jpeg")) {
// 图片压缩
InputStream inputStream = file.getInputStream();
// 把图片读入到内存中
BufferedImage bufImg = ImageIO.read(inputStream);
// 压缩代码 存储图片文件byte数组
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// 防止图片变红
BufferedImage newBufferedImage = new BufferedImage(bufImg.getWidth()-100, bufImg.getHeight()-100, BufferedImage.TYPE_INT_RGB);
newBufferedImage.createGraphics().drawImage(bufImg, 0, 0, Color.WHITE, null);
// 先转成jpg格式来压缩,然后在通过OSS来修改成源文件本来的后缀格式
ImageIO.write(newBufferedImage, "jpg", bos);
// 获取输出流
inputStream = new ByteArrayInputStream(bos.toByteArray());
// 上传OSS
OssUtil.ins().uploadFile(fileName, inputStream);
}

浙公网安备 33010602011771号