我正在與Robot
類打印屏幕和我將BufferedImage轉換爲int數組。然後我想要將int數組轉換回bufferedimage,但是會產生錯誤。這是我的代碼:詮釋數組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);
編輯:如果我改變了第二的BufferedImage類型TYPE_BYTE_GRAY這是工作。
你可以分享堆棧跟蹤嗎?你在哪一行得到它? – Swapnil
在帖子中編輯。 –
我建議把所有的尺寸都放在'screen'的尺寸上。爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。似乎這個問題正在尖叫出一些基本的代碼行跟蹤和大小顯示。 –