Java图片的压缩
2024-10-01 09:54:58
1、如果在springMvc中,会自带生成MultipartFile文件,将MultipartFile转化为File
MultipartFile file1 = file;
CommonsMultipartFile cf= (CommonsMultipartFile)file1;
DiskFileItem fi = (DiskFileItem)cf.getFileItem();
File f = fi.getStoreLocation();
2、转化为image类,并获取一些必须的数值
private static Image img;
private static float width;
private static float height; img = ImageIO.read(f); // 构造Image对象
width = Float.parseFloat(String.valueOf(img.getWidth(null))); // 得到源图宽
height = Float.parseFloat(String.valueOf(img.getHeight(null))); // 得到源图长 System.out.println("输入的图片大小:"+f.length()/1024+"kb");
3、压缩图片
//判断文件是否能转化成image类
if(width!=-1){
//当前例子是等比例缩放到宽为320px
//缩放比例
Float s=width/320;
//要缩放的宽
Integer w=(int) (width/s);
//要缩放的高
Integer h=(int) (height/s); //创建一个模板
BufferedImage image = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB);
//在模板上绘制缩小后的图
image.getGraphics().drawImage(img, 0, 0, w, h, null);
}
4、将生成的图片转化为InputStream
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "gif", os);
InputStream is = new ByteArrayInputStream(os.toByteArray());
最新文章
- 使用Metrics监控应用程序的性能
- SolrQuery的使用
- MySQL学习笔记十七:复制特性
- vba单元格背景色
- node.js 对接公众平台
- JSON.stringify(),JSON.parse(),toJSON()方法使用
- 浅析c语言中的变量(局部变量,外部变量,静态变量,寄存器变量)[转]
- Rust 学习 0
- leetcode修炼之路——350. Intersection of Two Arrays II
- 慎用MonthsBetweent和MonthSpan
- MyBatis学习笔记(二) Executor
- ESP32 windows开发环境的搭建(官方方法)
- 2017-2018-2 20155224『网络对抗技术』Exp4:恶意代码分析
- java注解方式解析xml格式
- C#WinForm窗体事件执行次序
- Vuejs搜索下拉框
- 【Navicat_Premium_11.0.10】破解版
- HBase—列族数据库的术语
- MySQL:SQL进阶
- vijos 1037 背包+标记