Ich mache mit der Robot
Klasse ein printscreen und ich konvertiere das BufferedImage in ein int-Array. Dann möchte ich das int-Array zurück in ein gepuffertes Bild konvertieren, aber das gibt einen Fehler. Dies ist mein Code:int-array zu 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);
Aber ich bekomme die Fehlermeldung: ArrayIndexOutOfBoundsException: 2073600
aber warum?
Ich erhalte die Ausnahme auf dieser Linie:
raster.setPixels(0, 0, screen.width, screen.height, pixels);
EDIT: Es funktioniert, wenn ich den zweiten BufferedImage Typen TYPE_BYTE_GRAY ändern.
Können Sie den StackTrace teilen? Auf welcher Linie bekommst du es? – Swapnil
Edited in der Post. –
Ich empfehle, alle Ihre Abmessungen auf die Größe von "Bildschirm" zu basieren. Um schneller Hilfe zu bekommen, schreiben Sie eine [SSCCE] (http://sscce.org/). Es scheint auch, dass dieses Problem für einige grundlegende Verfolgung von Codezeilen und Anzeige von Größen schreit. –