zoukankan      html  css  js  c++  java
  • Java图片的压缩

    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());
  • 相关阅读:
    table标签去除默认边框
    自定义矢量图
    ClickJacking(点击劫持)
    css 字体不撑开默认块级元素问题
    meate 标签使用介绍
    intellij IDEA15 设置背景颜色
    JS 浮点数运算丢失精度解决方案
    IDEA 滚动条跳动问题
    JS
    异步变同步
  • 原文地址:https://www.cnblogs.com/xyt-0412/p/4800425.html
Copyright © 2011-2022 走看看