我不太擅长编程,但现在,我需要编写一个小 Java 应用程序,但我遇到了一个奇怪的问题。我一直试图解决这个问题几个小时了。
问题是:我将一小部分屏幕 (20x20) 保存到我的程序中。我通过遍历每个像素来做到这一点,通过 Java.awt.robot 将其 RGB 保存到一个数组中。使用以下函数,程序应该在获取屏幕的新区域之前将复制的图像保存到 3 个数组(R、G 和 B)(我想稍后比较它们并寻找变化)。该死的一件事:在覆盖主数组之前我保存数据的旧数组总是在没有我告诉他们的情况下覆盖。
private void fillArrayData(){
oldDataR = dataR; <----- The problem is here. These arrays are now overwritten with the
oldDataG = dataG; <----- current data, just before I write stuff to dataR, G and B.
oldDataB = dataB; <----- As you see, I don't modify oldDataR, G, B later on.
scanArea.x = MouseInfo.getPointerInfo().getLocation().x;
scanArea.y = MouseInfo.getPointerInfo().getLocation().y;
for(int i = 0; i<scanSize; i++){
for(int n = 0; n<scanSize; n++){
dataR[i][n] = (rbt.getPixelColor(scanArea.x+i, scanArea.y+n)).getRed();
dataG[i][n] = (rbt.getPixelColor(scanArea.x+i, scanArea.y+n)).getGreen();
dataB[i][n] = (rbt.getPixelColor(scanArea.x+i, scanArea.y+n)).getBlue();
}
}
}
尽管我以后从不访问 oldDataR、oldDataG 和 oldDataB,但在此 void 完成后,它每次都等于 dataR、dataG 和 dataB。这是没有意义的,因为我在将新数据保存到 oldData-Arrays 后将新数据写入三个主要数组(dataR、dataG、dataB)。是的,我确保 rbt.getPixelColor 收到的数据与以前不同。
请帮助我,我现在真的很沮丧,但需要继续前进。
慕雪6442864
交互式爱情
相关分类