将资源图像绘制到缓冲图像上

时间:2014-06-12 18:15:25

标签: java file-io bufferedimage

好的,我想创建一个我资源文件夹中的图像副本,并将其放到桌面上。示例:我的项目有一个资源文件夹,其中包含一个名为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) {

    }
}

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您需要加载BufferedImage作为图片文件。

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

所有其他步骤都相同。