Я разрабатываю приложение, в котором мне нужно сохранить миниатюры изображения в папке внутри папки, где находятся изображения.Папка с изображениями выбирается с помощью средства выбора файлов.
У меня проблема с сохранением миниатюр.Там написано сообщение об ошибке: файл не найден, исключение.
Код, который я написал:
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ThumbnailFactory {
public ThumbnailFactory() {
}
public void run(String folder) {
savepath = folder+"\\thumbnails";
File dir = new File(folder);
for (File file : dir.listFiles()) {
createThumbnail(file);
}
}
private void createThumbnail(File file) {
try {
// BufferedImage is the best (Toolkit images are less flexible)
BufferedImage img = ImageIO.read(file);
BufferedImage thumb = createEmptyThumbnail();
// BufferedImage has a Graphics2D
Graphics2D g2d = (Graphics2D) thumb.getGraphics();
g2d.drawImage(img, 0, 0,
thumb.getWidth() - 1,
thumb.getHeight() - 1,
0, 0,
img.getWidth() - 1,
img.getHeight() - 1,
null);
g2d.dispose();
ImageIO.write(thumb, "PNG", createOutputFile(file));
} catch (Exception e) {
e.printStackTrace();
}
}
private File createOutputFile(File inputFile) throws IOException {
System.out.println(savepath+"\\"+inputFile.getName());
File f = new File(savepath+"\\"+inputFile.getName()+".png");
if(!f.exists())
{
System.out.println("Creating the file in thumbnail directory");
f.createNewFile();
}
return new File(savepath+"\\"+inputFile.getName()+".png") ;
}
private BufferedImage createEmptyThumbnail() {
return new BufferedImage(100, 200,
BufferedImage.TYPE_INT_RGB);
}
private String savepath;
}
В createOutputFile()
выдается FileNotFoundException
, NullPointerException
.в точке f.createNewFile()
.
Входным файлом является изображение в выбранной папке.Я должен поместить эскиз этого изображения в папку, созданную внутри выбранной папки.
Например, папка "Выбранное изображение" - D:\pictures
Затем мне нужно поместить миниатюру каждой картинки внутри D:\pictures
в D:\pictures\thumbnails
.
, пожалуйста, укажите на ошибку, которую я делаюи как это исправить.