2015-10-28 6 views
0

Я пытаюсь обрезать изображение, полученное из загрузки формы. Прежде чем я обрезаю его, я его сохранил, а затем снова получаю его как BufferedImage (потому что я не знаю, как превратить часть в буферизованное изображение). Затем я обрезаю это изображение, но когда я попытаюсь сохранить его снова, я получаю java.io.FileNotFoundException (доступ запрещен)FileNotFoundException при чтении BufferedImage

Первое изображение будет сохранено правильно, я получаю исключение, когда пытаюсь вернуть его.

Можно ли превратить мою часть в буферизованное изображение, а затем сохранить его? Вместо того, чтобы делать двойную работу. или есть некоторые исправления для моего ниже кода.

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); 
     }            
} 
+0

Создает ли файл part.write? также где находится эта ошибка –

ответ

3

ImageIO.write ((RenderedImage им, строка FORMATNAME, выходной файл));

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

В соответствии с документацией параметров выходного файла является объектный файл, где было бы написано изображение, где вы проходили объект файла каталога родителя.

+1

Благодарим за разъяснение! – JonCode