我正在尝试从文件创建一个调整大小的缓冲图像。最初,我只是以Image类型读取文件。我想调整它的大小,因此我开始尝试使用BufferedImage。将文件读取为Image类型的效果很好,但是现在读取时会引发异常。这是代码。

BufferedImage origImage = ImageIO.read(new File("/resources/Door&Vase.jpg"));
            int type = origImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : origImage.getType();
            image = super.resizeImage(origImage, type);


这是起作用的代码:

image = (new ImageIcon(getClass().getResource("/resources/Door&Vase.jpg"))).getImage();


在第一种情况下,图像是BufferedImage。在第二个中,它只是一个图像。代码在读取文件(第一行)时会引发异常,但我也尝试了绝对路径。所以,不知道

最佳答案

可以使用的代码使用getClass().getResource("/resources/Door&Vase.jpg")),但是不使用new File("/resources/Door&Vase.jpg")的代码。

相反,您应该使用getClass().getResource("/resources/Door&Vase.jpg")),例如...

BufferedImage origImage = ImageIO.read(getClass().getResource("/resources/Door&Vase.jpg"));

07-26 07:11