我正在尝试从文件创建一个调整大小的缓冲图像。最初,我只是以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"));