读取BufferedImage时出现FileNotFoundException

时间:2015-10-28 13:18:55

标签: java bufferedimage javax.imageio

我正在尝试裁剪从表单上传中收到的图片。在我裁剪之前我保存它,然后我再次将其作为BufferedImage检索(因为我不知道如何将零件转换为缓冲图像)。然后我裁剪此图片,但当我再次尝试保存时,我得到java.io.FileNotFoundException(拒绝访问)

第一张图片被正确保存,当我试图将其拉回时,我得到了异常。

是否可以将我的部分转换为缓冲图像然后保存?而不是做双重工作。或者我的下面代码有一些修复。

String savePath = "path";

File fileSaveDir = new File(savePath);
if (!fileSaveDir.exists()) {
    fileSaveDir.mkdir();
}

for (Part part : request.getParts()) {
        //functionality to ormit non images

        String fileName = extractFileName(part);                                            

        part.write(savePath + "/" + fileName);

        String imagePath = savePath + "/" + fileName;

        BufferedImage img = null;
        try {

            img = ImageIO.read(new File(imagePath));

            img = img.getSubimage(0, 0, 55, 55);

            ImageIO.write(img, "jpg", fileSaveDir);

        } catch (IOException e) {
            System.out.println(e);
        }                                               
} 

1 个答案:

答案 0 :(得分:3)

  

ImageIO.write((RenderedImage im,String formatName,File output));

Parameters:
im a RenderedImage to be written.
formatName a String containg the informal name of the format.
output a File to be written to.

根据文档输出文件参数是文件对象,在该文件对象中,您将通过父目录文件对象写入图像。