-3

这是我现在拥有的代码:

File file= new File("C:\Documents and Settings\vasanth\Desktop\s.PNG");
BufferedImage image;

try {
    image = ImageIO.read(file);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Raster raster = image.getRaster();

BufferedImage image2 = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
WritableRaster raster2 = image2.getRaster();
BufferedImage image3 = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
WritableRaster raster3 = image3.getRaster(); 

我应该保留我在这里使用的图像吗?即使我已经指定了图像文件的完整路径,我仍然会收到错误消息。

4

2 回答 2

14

在 java 字符串中使用双斜杠。单斜杠被认为是字符转义序列。

所以你应该像这样打开文件:

File file= new File("C:\\Documents and Settings\\vasanth\\Desktop\\s.PNG");
于 2013-01-22T14:16:12.353 回答
2

除了 Ivaylo 所说的,看看这部分代码:

BufferedImage image;
try {
    image = ImageIO.read(file);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Raster raster = image.getRaster();

你有没有考虑过如果你有一个异常分配会发生什么image?您将在 null 对象上调用一个方法,这将使用NullPointerException.

如果发生异常,您需要停止对图像执行的任何操作。您可以将所有这些都放在try...catch块中以解决此问题。

于 2013-01-22T14:18:37.533 回答