这是我现在的代码:
File file= new File("C:Documents and SettingsvasanthDesktops.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();
我应该保留我在这里使用的图像吗?即使我指定了图像文件的完整路径,我仍然收到错误。
在 java 字符串中使用双斜杠。单斜杠被视为字符转义序列。
所以你应该像这样打开文件:
File file= new File("C:\Documents and Settings\vasanth\Desktop\s.PNG");
除了 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
块中以解决此问题。