我正在使用Robot
类进行屏幕截图,并将BufferedImage转换为int数组。然后我想将int数组转换回BufferedImage,但是这会出现错误。这是我的代码:
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
BufferedImage printscreen = robot.createScreenCapture(new Rectangle(screen));
int[] pixels = ((DataBufferInt) printscreen.getRaster().getDataBuffer()).getData();
BufferedImage image = new BufferedImage(screen.width, screen.height, BufferedImage.TYPE_INT_RGB);
WritableRaster raster = (WritableRaster) image.getRaster();
raster.setPixels(0, 0, screen.width, screen.height, pixels);
但我收到了错误提示:ArrayIndexOutOfBoundsException: 2073600
,但是为什么会出现这个错误?
我在这一行代码中遇到了异常:
raster.setPixels(0, 0, screen.width, screen.height, pixels);
编辑:如果我将第二个缓冲图像的类型更改为 TYPE_BYTE_GRAY,则它可以正常工作。