我正在尝试从文件创建调整大小的缓冲图像。最初我只是在文件中读取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();
在第一种情况下,image是BufferedImage。在第二个它只是一个图像。在读取文件时(第一行)代码抛出异常,但我也尝试了绝对路径。所以,不知道。
答案 0 :(得分:4)
使用的代码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"));