Java 将资源映像绘制到缓冲映像上

Java 将资源映像绘制到缓冲映像上,java,file-io,bufferedimage,Java,File Io,Bufferedimage,好的,我想创建一个我在我的资源文件夹中的图像副本,并把它放到桌面上。示例:我的项目有一个资源文件夹,其中包含一个名为apple.png的图像。因为当我导出jar文件时,它找不到它,所以我想把它复制到桌面上,这样它就可以从那里找到它。以下是我尝试做的: try { // retrieve image BufferedImage bi = new BufferedImage(256, 256, BufferedImage.TYPE_IN

好的,我想创建一个我在我的资源文件夹中的图像副本,并把它放到桌面上。示例:我的项目有一个资源文件夹,其中包含一个名为apple.png的图像。因为当我导出jar文件时,它找不到它,所以我想把它复制到桌面上,这样它就可以从那里找到它。以下是我尝试做的:

try {
        // retrieve image
        BufferedImage bi = new BufferedImage(256, 256,
                BufferedImage.TYPE_INT_RGB);
        File outputfile = new File(
                "C:/Users/Owner/Desktop/saved.png");
        ImageIO.write(bi, "png", outputfile);
    } catch (IOException e) {

    }
}

这只是在我的桌面上为我创建了缓冲图像。如何获取res图像并将其复制到其中。

您需要将
缓冲区图像作为图像文件加载

BufferedImage bi = ImageIO.read(new File(getClass().getResource("/apple.png"));));

所有其他步骤都相同。

将其作为图像加载的原因是什么?如果只想将资源复制到桌面而不进行更改:

InputStream resStream = getClass().getResourceAsStream("/image.png"));

//Improved creation of output path:
File path = new File(new File(System.getProperty("user.home")), "Desktop");
File outputFile = new File(path, "saved.png");

//now write it
Files.copy(resStream, outputFile);

不过这是一个资源文件。