博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java图片的压缩
阅读量:5959 次
发布时间:2019-06-19

本文共 1205 字,大约阅读时间需要 4 分钟。

1、如果在springMvc中,会自带生成MultipartFile文件,将MultipartFile转化为File

1 MultipartFile file1 = file; 2 CommonsMultipartFile cf= (CommonsMultipartFile)file1; 3 DiskFileItem fi = (DiskFileItem)cf.getFileItem(); 4 File f = fi.getStoreLocation();

2、转化为image类,并获取一些必须的数值

1 private static Image img;  2 private static float width;  3 private static float height; 4 5 img = ImageIO.read(f);      // 构造Image对象  6 width  =  Float.parseFloat(String.valueOf(img.getWidth(null)));  // 得到源图宽  7 height =  Float.parseFloat(String.valueOf(img.getHeight(null))); // 得到源图长 8 9 System.out.println("输入的图片大小:"+f.length()/1024+"kb");

3、压缩图片

1 //判断文件是否能转化成image类 2 if(width!=-1){ 3    //当前例子是等比例缩放到宽为320px 4    //缩放比例 5    Float s=width/320; 6    //要缩放的宽 7    Integer w=(int) (width/s); 8    //要缩放的高 9    Integer h=(int) (height/s);10    11    //创建一个模板12    BufferedImage image = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB);13    //在模板上绘制缩小后的图 14    image.getGraphics().drawImage(img, 0, 0, w, h, null);  15 }

4、将生成的图片转化为InputStream

ByteArrayOutputStream os = new ByteArrayOutputStream();ImageIO.write(image, "gif", os);InputStream is = new ByteArrayInputStream(os.toByteArray());

 

转载于:https://www.cnblogs.com/xyt-0412/p/4800425.html

你可能感兴趣的文章
校验表单如何摆脱 if else ?
查看>>
<气场>读书笔记
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
从前后端分离到GraphQL,携程如何用Node实现?\n
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
jquery 操作iframe、frameset
查看>>
解决vim中不能使用小键盘
查看>>
jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs
查看>>
我的友情链接
查看>>
CentOS定时同步系统时间
查看>>
批量删除用户--Shell脚本
查看>>
Eclipse Java @Override 报错
查看>>