【发布时间】:2016-04-30 13:42:04
【问题描述】:
我正在尝试从相机获取像素的 rgb 值。
我不断收到空值。 还有另一种方法可以将相机中的图像捕获到位图中吗?我研究了几个选项,但大多数都产生了 NullPointerException。
它还输出 SkImageDecoder::Factory 返回 null。
private final ImageReader.OnImageAvailableListener mOnImageAvailableListener = new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
// Image image = reader.acquireNextImage();
// mBackgroundHandler.post(new ImageSaver(reader.acquireNextImage(), mFile));
try {
Image image = reader.acquireNextImage();
final Image.Plane[] planes = image.getPlanes();
final Buffer buffer = planes[0].getBuffer();
Log.d("BUFFER", String.valueOf(buffer));
int offset = 0;
//
byte[] bytes = new byte[buffer.remaining()];
Log.d("BUYTES", String.valueOf(bytes));
//
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); // NULL err
Log.d("R1", "bitmap created");
//
int r1, g1, b1;
int p = 50;
r1 = (p >> 16) & 0xff;
g1 = (p >> 8) & 0xff;
b1 = p & 0xff;
Log.d("R1", String.valueOf(r1));
Log.d("G1", String.valueOf(g1));
Log.d("B1", String.valueOf(b1));
} catch (Exception e) {
e.printStackTrace();
}
}
};
【问题讨论】:
标签: android bitmap android-camera