int array a BufferedImage
Estoy haciendo con elRobot
Clase una printscreen y convierto BufferedImage en una matriz int. Luego quiero volver a convertir la matriz int en un bufferedimage pero eso da un error. Este es mi código:
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);
Pero me sale el error:ArrayIndexOutOfBoundsException: 2073600
¿pero por qué?
Estoy recibiendo la excepción en esta línea:
raster.setPixels(0, 0, screen.width, screen.height, pixels);
EDITAR: Funciona si cambio el segundo tipo de imagen de búfer a TYPE_BYTE_GRAY.