数组RGB操作

时间:2010-10-06 05:53:02

标签: java arrays rgb

假设我有int[][] arrayAint[][] arrayB。在该数组中的任何给定坐标处都存在RGB值。我想要做的是使用加权平均方法将arrayAarray 2中的RGB值合并到一个新数组newArray中。

所以我正在做的是从每个RGB值中提取红色,绿色和蓝色值,如下所示:

        curColA=RGB //suppose RGB is just the RGB in any given point

        int curRedA = (curCol >> 16) & 0xFF;

        int curGreenA = (curCol >> 8) & 0xFF;

        int curBlueA= curCol & 0xFF;

我对arrayB也这样做,现在我想合并它们。这是我遇到麻烦的地方。我只是做newRed=(curRedA+curRedB)/2还是有其他方法可以做到这一点?

arrayA values:  { { 0, 0x44, 0x5500, 0x660000 } };
arrayB values:  { { 2, 4, 6, 8 } };
newArray expected values: { 0, 0x44, 6, 0x660000 } };

1 个答案:

答案 0 :(得分:1)

加权平均值通常是这样的:

newRed = (curRedA * redWeight + curRedB * (1 - redWeight));

...其中redWeight在[0,1]范围内,并表示'A'数组中朝向红色值的权重(或偏差)。它还表示偏向“B”阵列中红色值的反转。