使用spring注解上传文件@RequestParam(value="", required=true),required为true时不能传入空值,为false时反之;UploadFile.getOriginalFilename()获取上传的文件的文件名;System.nanoTime()返回当前时间的纳秒,用做文件名;FileUtils.writeByteArrayToFile()上传文件到本地目录;使用BufferedImage将图片加载到内存中,然后对图片进行修改如大小变换、图片变灰、设置透明等。 

效果图:

Java怎么实现按比例缩小图片

HTML:


    *头像:
    
        
                                                                                         上传图片                                                         
        
                                  
    

form表单提交到java:

@SuppressWarnings("unused")
@RequestMapping(value="/IntOpers")
private void IntOper(@RequestParam(value="UploadFile", required=true) MultipartFile UploadFile, PrintWriter pw, HttpServletRequest request) throws IOException {
    String StrReturn = "error", FileName = "", ext = "";
    long time = 0;
    if (!UploadFile.isEmpty()) {
        if (UploadFile != null) {
            String fullName = UploadFile.getOriginalFilename();
            ext = fullName.substring(fullName.lastIndexOf("."));//获取扩展名称
            time = System.nanoTime();
            FileName = time + ext;//设置文件保存的名称
            
            //原图
            String upDir = "F:/java/upload-ssm";//文件上传路径
            FileUtils.writeByteArrayToFile(new File(upDir, FileName), UploadFile.getBytes());
            //缩小图片
            Image srcFile = ImageIO.read(new File(upDir + "/" + FileName));
            BufferedImage tag = new BufferedImage(28, 40, BufferedImage.TYPE_INT_RGB);
            tag.getGraphics().drawImage(srcFile, 0, 0, 28, 40, null);
 
            String FileName_tab = time + "_tab" + ext;//设置文件保存的名称
            FileOutputStream out = new FileOutputStream(upDir + "/" + FileName_tab);
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
            JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);
            
            jep.setQuality(1f, true);
            encoder.encode(tag, jep);
            out.close();
            StrReturn = "success";
        }
    }
    pw.write(StrReturn);
}
本文转载于:https://www.yisu.com/zixun/694367.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。