spring mvc MultipartFile图片压缩
时间: 2023-10-17 07:36:14 浏览: 149
springmvc文件下载
你可以使用Java的javax.imageio包来实现MultipartFile图片的压缩。下面是一个使用Spring MVC和MultipartFile进行图片压缩的示例代码:
```java
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ImageCompressor {
public static void compressImage(MultipartFile file, String outputFilePath, int maxWidth, int maxHeight) throws IOException {
BufferedImage image = ImageIO.read(file.getInputStream());
int originalWidth = image.getWidth();
int originalHeight = image.getHeight();
// 计算缩放比例
double scaleFactor = Math.min((double) maxWidth / originalWidth, (double) maxHeight / originalHeight);
int newWidth = (int) (originalWidth * scaleFactor);
int newHeight = (int) (originalHeight * scaleFactor);
// 创建缩放后的图像
BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = resizedImage.createGraphics();
g2d.drawImage(image, 0, 0, newWidth, newHeight, null);
g2d.dispose();
// 将缩放后的图像保存到文件
ImageIO.write(resizedImage, "jpg", new File(outputFilePath));
}
}
```
使用时,你可以在Spring MVC的controller中调用`compressImage`方法来实现图片压缩。需要传入要压缩的MultipartFile对象、输出文件路径、以及期望的最大宽度和最大高度。
注意:上述示例代码仅适用于压缩JPEG格式的图片,如果需要处理其他格式的图片,可以根据需要进行修改。
阅读全文