【问题标题】:Scale image after upload JSP上传 JSP 后缩放图像
【发布时间】:2014-03-12 10:42:48
【问题描述】:

我需要知道如何缩放上传的图像并将其保存在服务器上的 Upload 文件夹中。

我有这个来处理人们可以在那里上传文件的表单。

public void init() {
    fileSavePath = getServletContext().getRealPath("/") + File.separator + UPLOAD_DIRECTORY;/*save uploaded files to a 'Upload' directory in the web app*/
    if (!(new File(fileSavePath)).exists()) {
        (new File(fileSavePath)).mkdir();    // creates the directory if it does not exist        
    }
}


public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException {


        String resp = "";
        int i = 1;
        resp += "<br>Here is information about uploaded files.<br>";
        try {
            MultipartParser parser = new MultipartParser(request, 1024 * 1024 * 1024);  /* file limit size of 1GB*/
            Part _part;
            while ((_part = parser.readNextPart()) != null) {
                if (_part.isFile()) {
                    FilePart fPart = (FilePart) _part;  // get some info about the file
                    String name = fPart.getFileName();
                    if (name != null) {
                        long fileSize = fPart.writeTo(new File(fileSavePath));
                        resp += i++ + ". " + fPart.getFilePath() + "[" + fileSize / 1024 + " KB]<br>";
                    } else {
                        resp = "<br>The user did not upload a file for this part.";
                    }
                }
            }// end while 
        } catch (java.io.IOException ioe) {
            resp = ioe.getMessage();
        }
        request.setAttribute("message", resp);
        getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
    }

例如,我需要将所有图像调整为 100x100

【问题讨论】:

    标签: java jsp servlets scale


    【解决方案1】:

    先保存,再加载,再缩放,再重新保存。

    try 
    {
        BufferedImage img = ImageIO.read(new File(in_path));
        Image scaled = img.getScaledInstance(100, 100, Image.SCALE_FAST);
        ImageIO.write(scaled, "png", out_path);
    }
    catch (Exception ex)
    {
        System.out.println(ex.getMessage();
    }
    

    getScaledInstance第三个参数中可以使用的缩放方法列表见http://docs.oracle.com/javase/7/docs/api/java/awt/Image.html

    【讨论】:

      猜你喜欢
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多