Java:将一维数组映射到位图

时间:2020-04-13 17:35:58

标签: java android

我有下面的2D数组,其中包含RGB通道的颜色强度值。

// create a 2d array for colors
int[][] rgbColors = {
            {255, 0, 0}, //red
            {0, 255, 0}, //green
            {0, 0, 255}, //blue
        };

我还有另一个一维数组:

// Data array
int [] data = {0, 0, 0, 1, 1, 1, 2, 2, 2}

我想将data数组整形为3x3 Bitmap Image,以便将所有0值映射到红色,将所有1值映射到绿色,将所有2个值映射到蓝色。结果位图。换句话说,生成的位图将分别具有三行,分别具有红色,绿色和蓝色。颜色值以rgbColors 2D数组给出。最有效的方法是什么?

编辑:

我尝试了以下操作,但没有成功,并产生了空白图片。

bitmap = Bitmap.createBitmap(data, 3, 3, Bitmap.Config.ARGB_8888);

1 个答案:

答案 0 :(得分:1)

阅读文档(我完全没有Android知识),我认为将data数组更改为

    int[] data = {-65536,
    -65536,
    -65536,
    -16711936,
    -16711936,
    -16711936,
    -16776961,
    -16776961,
    -16776961
};

可以使用,但是您需要阅读docs才能知道参数的含义。