【问题标题】:Getting the Color value of any pixel in the given bitmap获取给定位图中任何像素的颜色值
【发布时间】:2015-11-06 10:19:06
【问题描述】:

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

if(bitmap.getPixel(x,y) == Color.WHITE)

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

int white = Color.WHITE; 这给了我-1的值,黑色的值是-1633377。

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

你们能帮我解决这个问题吗?

谢谢。

【问题讨论】:

标签: android canvas android-canvas


【解决方案1】:

请查看here

颜色的 Alpha、Red、Green 和 Blue 分量分别存储在一个字节上(因此值在 [0-255] 中),这 4 个字节被打包在一个通常为 4 个字节的 java“int”中。

你得到负值是因为你使用有符号整数,在 C++ 中你会使用无符号整数,但这些在 Java 中不可用,更多信息here

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2013-07-21
    相关资源
    最近更新 更多