int array para BufferedImage
Estou fazendo com oRobot
class um printscreen e eu converto o BufferedImage em um array int. Então eu quero converter o array int de volta para um bufferedimage, mas isso dá um erro. Este é o meu 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);
Mas eu recebo o erro:ArrayIndexOutOfBoundsException: 2073600
mas por que?
Estou recebendo a exceção nesta linha:
raster.setPixels(0, 0, screen.width, screen.height, pixels);
EDIT: Ele está funcionando se eu alterar o segundo tipo de bufferedimage para TYPE_BYTE_GRAY.