【发布时间】:2017-02-22 07:41:00
【问题描述】:
我已经从 onPreviewFrame (byte [] data, camera camera) {...} 将NV21提取Y为灰度值,但是我想打印灰度值,灰度值应该是0~255 但是根据黑色区域应该是0却打印出-16777216,怎么才能看到0~255 PS.我知道 ARGB_8888 是 32 位,所以要提取黑色区域 if 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
public Bitmap applyGrayScale( byte [] data, int width, int height) {
int[] pixels = new int[width * height];
int p;
int size = width*height;
for(int i = 0; i < size; i++) {
p = data[i] & 0xFF;
pixels[i] = 0xff000000 | p<<16 | p<<8 | p;
Log.d("pixels=", String.valueOf(pixels[i]));
}
return Bitmap.createBitmap(pixels, width, height, Bitmap.Config.ARGB_8888);
}
【问题讨论】: