使用像素和argb

时间:2014-02-17 22:43:21

标签: android

我有一个循环,直到i < pixels.lenth pixels = bitmap.getpixels(..)。 现在我在循环中有这个代码:

int argb = 0;
argb += ((pixels[x] >> 24) & 0xff); // alpha 
argb += (pixels[x] & 0xff);         // blue
argb += ((pixels[x] & 0xff) << 8);  // green
argb += ((pixels[x] & 0xff) << 16); // red
pixels[x] = argb;

问题是图像变为灰色粗体(如果有人需要可以添加图片),而不是保持正常。谁能帮我? 非常感谢

1 个答案:

答案 0 :(得分:0)

你换错了顺序。它应该是:

int argb = 0;
int alpha = ((pixels[x] >> 24) & 0xff); // alpha 
int blue = (pixels[x] & 0xff);         // blue
int green = ((pixels[x] >> 8 )& 0xff) ;  // green
int red = ((pixels[x] >> 16) & 0xff); // red
pixels[x] = alpha << 24 + red << 16 + green << 8 + blue