gpt4 book ai didi

java - 在文件夹中保存图像时出现问题

转载 作者:行者123 更新时间:2023-12-02 00:42:19 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我需要将图像的缩略图保存在图像所在文件夹内的文件夹中。图像文件夹通过文件选择器来选择。

我在保存缩略图时遇到问题。它显示一条错误消息,而不是文件未找到异常。

我编写的代码是:

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;
}

它在 f.createNewFile() 处的 createOutputFile() 方法中抛出 FileNotFoundExceptionNullPointerException > 点。

输入文件是所选文件夹中的图像。我必须将此图像的缩略图放在所选文件夹内创建的文件夹中。

例如, 所选图像文件夹为D:\pictures然后我需要将每张图片的缩略图放在 D:\pictures 中的 D:\pictures\thumbnails 中。

请指出我犯的错误以及如何纠正。

最佳答案

您可以考虑使用Thumbnailator,而不是自己编写所有这些代码。图书馆。您的整个示例可以用以下几行编写,这可以更好地表达您的意图。

public class ThumbnailFactory {

public void run(String folder) {
Thumbnails.of(new File(folder+"\\thumbnails").listFiles())
.size(100,200)
.outputFormat("png")
.asFiles(Rename.SUFFIX_HYPTHEN_THUMBNAIL);
}
}

关于java - 在文件夹中保存图像时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6006974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com