Robot
このクラスでprintscreenを作成し、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);
編集:2番目のbufferedimageタイプをTYPE_BYTE_GRAYに変更すると機能します。