tablica int do BufferedImage

Robię zRobot klasy printscreen i konwertuję BufferedImage na tablicę int. Następnie chcę przekonwertować tablicę int z powrotem na buforowany obraz, ale daje to błąd. To jest mój kod:

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);

Ale mam błąd:ArrayIndexOutOfBoundsException: 2073600 ale dlaczego?

Mam wyjątek w tej linii:

raster.setPixels(0, 0, screen.width, screen.height, pixels);

EDIT: Działa, jeśli zmienię drugi typ bufora na TYPE_BYTE_GRAY.

questionAnswers(5)

yourAnswerToTheQuestion