获取给定位图中任何像素的颜色值

时间:2015-08-13 12:33:35

标签: android canvas android-canvas

我正在研究android的画布视图。我只是想知道这个条件在语义上是否有效。

int

我通过以下方式记录了Color.WHITE的值:

if(bitmap.getPixel(x,y) == Color.WHITE) 这给了我-1的值,黑色的值是-1633377的东西。

我找到了通过 getPixel()方法获取位图中任何像素值的方法,并返回ARGB值。我已经尝试了各种方法来做到这一点,但都没有成功。

你们可以帮助我吗?

感谢。

1 个答案:

答案 0 :(得分:2)

请检查here

颜色的Alpha,红色,绿色和蓝色组件分别存储在一个字节上(因此[0-255]中的值),这4个字节打包在java" int"通常是4个字节。

你得到负值是因为你使用了signed int,在C ++中你会使用unsigned int,但那些在Java中不可用,更多信息here

所以回答你的问题,是你的条件在语义上是有效的,-1是0xFFFFFFFF的(符号)int值,而Black不是零可能是因为这是不透明的黑色,所以alpha = 255 => 0xFF000000