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());

最新文章

  1. 使用Metrics监控应用程序的性能
  2. SolrQuery的使用
  3. MySQL学习笔记十七:复制特性
  4. vba单元格背景色
  5. node.js 对接公众平台
  6. JSON.stringify(),JSON.parse(),toJSON()方法使用
  7. 浅析c语言中的变量(局部变量,外部变量,静态变量,寄存器变量)[转]
  8. Rust 学习 0
  9. leetcode修炼之路——350. Intersection of Two Arrays II
  10. 慎用MonthsBetweent和MonthSpan
  11. MyBatis学习笔记(二) Executor
  12. ESP32 windows开发环境的搭建(官方方法)
  13. 2017-2018-2 20155224『网络对抗技术』Exp4:恶意代码分析
  14. java注解方式解析xml格式
  15. C#WinForm窗体事件执行次序
  16. Vuejs搜索下拉框
  17. 【Navicat_Premium_11.0.10】破解版
  18. HBase—列族数据库的术语
  19. MySQL:SQL进阶
  20. vijos 1037 背包+标记

热门文章

  1. 存档:Telerik Test Studio的摸索笔记
  2. OpenCV边缘检测的详细参数调节
  3. spring3+quartz2
  4. 图的遍历---DFS
  5. eas之编辑表单元格
  6. 用windows远程桌面连接ubuntu
  7. 【例题4-6 uva12412】A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)
  8. 在centos6上面安装python3.4
  9. ACDream - Lowbit Sum
  10. BA-WG-冷源