2 lianlianbushell lianlianbushell 于 2013.06.04 14:06 提问

android中从位图获取getPixels

代码:

BitmapFactory.Options options = new BitmapFactory.Options();
Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.test, options);
int[] pixels = new int[1];
if(b != null){
  pixels = new int[b.getHeight()*b.getWidth()];
  b.getPixels(pixels, 0, b.getWidth(), 0, 0, b.getWidth(), b.getHeight());
  for(int i = 0 ; i < 100 ; i++){
    Log.d("test","Pixel is :"+pixels[i]);
  }
}

其中R.drawable.test是 .bmp 文件,位于res/drawable-nodp中

我期盼的结果不是0-255这些数值。

06-03 21:49:24.364: D/test(4088): Pixel is :-16777088
06-03 21:49:24.364: D/test(4088): Pixel is :-16777088
06-03 21:49:24.364: D/test(4088): Pixel is :-16777088
06-03 21:49:24.364: D/test(4088): Pixel is :-16777088
06-03 21:49:24.364: D/test(4088): Pixel is :-16777088
06-03 21:49:24.364: D/test(4088): Pixel is :-16777088
06-03 21:49:24.374: D/test(4088): Pixel is :-16777088

数字不对,请高手帮忙。

1个回答

shaojie519
shaojie519   2013.06.04 14:40
已采纳
                    int R = (pixels[i] >> 16) & 0xff;     
                    int G = (pixels[i] >> 8) & 0xff;
                    int B = pixels[i] & 0xff;
                    或者直接使用Color.red(pixels[i]),Color.green(pixels[i]),Color.blue( pixels[i])
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!