массив int в BufferedImage
я делаю сRobot
Класс printscreen, и я преобразую BufferedImage в массив int. Затем я хочу преобразовать массив int обратно в изображение с буферизацией, но это дает ошибку. Это мой код:
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.