Android中如何提取Bitmap位图像素

在Android系统中,假设我们已经取得位图的像素数组pixels。如果要取得相应的透明度、红色分量、绿色分量、蓝色分量,必须通过相应的按位与运算(&)计算得到。

既然要进行按位与运算(按位与运算是双目运算符),就是需要2个运算的数据,一个是像素数组的其中一项,一个是16进制数据。

如果参与按位与运算的16进制数据为:0X00FFFFFF,表示将透明度的数据清零。

如果参与按位与运算的16进制数据为:0XFF00FFFF,表示将红色分量的数据清零。

如果参与按位与运算的16进制数据为:0XFFFF00FF,表示将绿色分量的数据清零。

如果参与按位与运算的16进制数据为:0XFFFFFF00,表示将蓝色分量的数据清零。


16进制数据的第1、2位表示蓝色分量,进行按位与运算时,值越大,表示保留的分量越多。

16进制数据的第3、4位表示绿色分量,进行按位与运算时,值越大,表示保留的分量越多。

16进制数据的第1、2位表示红色分量,进行按位与运算时,值越大,表示保留的分量越多。

16进制数据的第1、2位表示透明度,进行按位与运算时,值越大,表示保留的透明度越多。

 

 

通过以上的操作,可以将原有的透明度、红色分量、绿色分量、蓝色分量进行适当的修改,比如:减少或者清零。

 

在进行了按位与运算后,如果想添加透明度、红色分量、绿色分量、蓝色分量,就要进行按位或运算。

进行按位或运算时,参与运算的也是一个16进制数据。

16进制数据的第1、2位表示蓝色分量,进行按位或运算时,值越大,表示添加的分量越多。

16进制数据的第3、4位表示绿色分量,进行按位或运算时,值越大,表示添加的分量越多。

16进制数据的第1、2位表示红色分量,进行按位或运算时,值越大,表示添加的分量越多。

16进制数据的第1、2位表示透明度,进行按位或运算时,值越大,表示添加的透明度越多。


你可能感兴趣的:(android开发)