在Android中,Color.rgb有什么作用?

3
我正在制作一个应用程序,使用相机进行实时图像处理。我已经用Java编写了代码,现在正在尝试将该代码移植到本地代码以加快速度。Java代码的一个重要部分是使用Color.rgb方法(来自android.Graphics库)将我的像素强度数组转换为“颜色整数”(由文档描述)。具体代码行如下:
Color.rgb(pixel, pixel, pixel)

像素值是介于0和255之间的整数。然后我使用drawBitmap方法将这个颜色整数数组绘制到画布上。是的,我知道这会导致黑白图像,因为这就是我需要的。

现在我需要在我的C代码中将像素强度转换为颜色整数,但我无法使用上述方法,因为C中没有库。我不确定颜色整数实际上是什么。如果有人能向我描述Color.rgb方法对强度值实际上做了什么,那么我就可以手动在C中编写代码。谢谢。


你尝试过查看Color#rgb()方法的源代码吗? - Matt Ball
2个回答

4

看一下:

public static int rgb(int red, int green, int blue) {
  return (0xFF << 24) | (red << 16) | (green << 8) | blue;
}

源代码


没想到你可以查看源代码!谢谢,现在我感觉很傻。 - NavMan
没关系。很多人没有意识到,但有时候它非常方便 :)。 - mibollma

1

"color-int" 是打包的32位(ARGB)颜色值,其中每个组件本身都是8位。

rgb 是一个帮助器,将离散值转换为“color-int”。查看alpharedgreenblue文档提供足够的信息,可以推断出这一点,而无需查看rgb源代码本身。

祝您编码愉快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接