我正在编写一个程序,在该程序中,我通过图像确定该图像中存在的平均红色通道,绿色通道和蓝色通道。我将这些平均值作为参数传递给新的颜色。然后我想将这种颜色添加到数组中。我重复这个过程24次。我面临的问题是,当我得到一种新颜色并将其添加到阵列中时,以前的颜色会被擦除。我想保留数组中现有的颜色并添加到尚未填充的颜色中。这是我尝试过的。将颜色添加到颜色数组
System.out.println("R: "+ rAvg);
System.out.println("G: "+ gAvg);
System.out.println("B: "+ bAvg);
Color newColor = new Color(rAvg, gAvg, bAvg);
Color[] ColorArr = new Color[24];
for(int i = 0; i < ColorArr.length; i++){
ColorArr[i] = newColor;
}
System.out.println(Arrays.toString(ColorArr));
这里是输出后一种颜色被添加到阵列
R: 206
G: 0
B: 0
[java.awt.Color[r=206,g=0,b=0],java.awt.Color[r=206,g=0,b=0]
这里是阵列后我添加一个新的颜色。
R: 211
G: 178
B: 230
[java.awt.Color[r=211,g=178,b=230], java.awt.Color[r=211,g=178,b=230]
最后一种颜色被覆盖,并被替换为新颜色,而不是进入下一个索引并保留最后一个。我该如何解决这个问题,以便将输入的颜色保存在数组中,并将新颜色放置在之前的索引之后?
'for-loop'用新的'Color'替换数组中的每个元素。你必须在你的程序的某个地方存储一个计数器,并为24次迭代中的每一次递增。 –
您的数组包含24个元素,它如何仅打印2个元素?我不明白 – developer
我没有展示整个事情,因为它很长,但它是有24次的重复。 @javaguy – cuber