如何在弹簧应用中压缩(减轻重量)图像

时间:2017-10-09 15:20:20

标签: java spring spring-mvc spring-boot

我有一个基于Web Spring的应用程序,用户可以上传图像,图像大小分别为3或4 MB。有没有办法压缩这些图像,所以我可以像大多数Web应用程序一样将图像减少到大约50或80 KB。我将图像保存在文件系统而非数据库中。这里我的应用程序的重要部分与图像上传有关。

add.jsp:

<div class="col-md-3 ">
      <springform:input  type="file"  path="photos" name="photos" style=" visibility:  hidden ; " onchange="imagepreview(this);"/>
       <label for="photos" >
         <img class="images img-thumbnail"  id="imgpreview" src="/imagetemp/?chemintemp=${chemintemp}"  onError="this.onerror=null;this.src='/images/noimage.gif';" />  
       </label> 
     </div>

query.js:

function imagepreview(input){
      if (input.files && input.files[0]){
        var filerd =new FileReader();
        filerd.onload=function (e){
            $("#imgpreview").attr('src',e.target.result);
        };
        filerd.readAsDataURL(input.files[0]);
      }
  };

Controler:

@RequestMapping(value="/imagetemp",method = RequestMethod.GET)
    public @ResponseBody void affichimagetemp(//@RequestParam("chemintemp") String img,
            Model md, HttpSession session,
            HttpServletResponse response,
            HttpServletRequest request) throws IOException,
            NullPointerException

    {
        String img=(String) session.getAttribute("chemintemp");
        if (img!=null){

            try {
                System.out.println("img /imagetemp :"+img);
                File imageFile = new File(img);
                response.setContentType("image/jpeg");
                InputStream in=new FileInputStream(imageFile);
                IOUtils.copy(in, response.getOutputStream());
                in.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

           }

    }

0 个答案:

没有答案