如何将数组数据映射到RGB颜色

时间:2018-04-06 15:54:22

标签: arrays mapping rgb

我有一个近似尺寸为3000x1的浮点数组。该数组包含介于-10 ^( - 3)到10 ^( - 3)之间的值。我想使用这些值来使用setColor方法为Android手机的显示器上的图像着色,该方法接受RGB值作为int。

我想要最小值,例如-10 ^ -3显示为蓝色,当你逼近0时变得更绿。从0到最大值,颜色应从绿色变为黄色/橙色/红色。我相信这很容易解决。

基本上,min(my_array)应该被赋予大约0x0000F0。当我们从min(my_array)朝向0时,颜色应该逐渐变得更加绿松石,直到达到绿色。从那里它应该朝向黄色和红色,直到达到max(my_array)。

我是否需要将RGB地图划分为3000段。然后我可以按升序排序我的数组,并按升序添加相应的RGB值作为第2列。然后,我不确定如何将阵列恢复到原始顺序。

1 个答案:

答案 0 :(得分:0)

我认为你应该将你的范围-10 ^( - 3)量化到10 ^( - 3)到至少512个值,并使用前256个值表示蓝色,129到364表示绿色,257到512表示红色。例如:

quantized_array[0] = -10^(-3)   ->   rgb = 0x0000ff
quantized_array[128] = some val ->   rgb = 0x004488
quantized_array[256] = 0        ->   rgb = 0x00ff00
quantized_array[364] = some val ->   rgb = 0x884400
quantized_array[512] = 10^(-3)  ->   rgb = 0xff0000