1

我在获取 Android 中位图的 RGB 值时遇到了一些问题……这就是我正在做的事情:

int[] temp = new int[width*height];
bit.getPixels(temp, 0, width, 0, 0, width, height);

但是,颜色似乎与典型的 RGB 值不匹配。例如,一个白色像素将显示为 -1,而它的 RGB 值为 16777215。(我从该网站获取该值:http: //www.shodor.org/stella2java/rgbint.html

还有大量的负值似乎不适合正常的 RGB 值。我的问题是,是否有一种方法可以转换为典型的 RGB 值,而不是 getPixels() 方法返回的 Android Color 整数。感谢您的帮助,如果您有任何问题,请告诉我。

4

3 回答 3

1

也许你可以getPixel先试试,好像会更容易。

否则,您能否在问题中提供更多代码(如何声明位图,从哪里获得 -1 值......等等......)

于 2011-06-28T04:30:27.927 回答
1

根据文档,-1 是白色,实际上,16777215 是十六进制的 0xffffff,相当于 -1。

's 的所有数字Color都是负数,因为在十六进制值中有前导 f。十六进制值中有前导 ff 来指定 alpha 值或不透明度。如果颜色完全不透明,则数字以ff开头,如果颜色完全透明,则数字以00开头。

于 2011-06-28T04:32:33.190 回答
1

将值存储在无符号整数中。

于 2011-06-28T06:02:05.553 回答