我正在尝试裁剪从表单上传中收到的图片。在我裁剪之前我保存它,然后我再次将其作为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);
}
}
答案 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.
根据文档输出文件参数是文件对象,在该文件对象中,您将通过父目录文件对象写入图像。