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.