Я пытаюсь получить значения черного и белого (плоскость Y) из рамки предварительного просмотра в camera2 API. Это то, что я до сих пор:
public void onImageAvailable(ImageReader, reader) {
Image image = reader.acquireLatestImage();
Image.Plane[] planes = image.getPlanes();
ByteBuffer yPlane = planes[0].getBuffer();
if (firstRun) {
ySize = yPlane.remaining();
nv21 = new byte[ySize];
}
yPlane.get(nv21, 0, ySize);
Log.i(TAG, String.valueOf(nv21.length) + " " + String.valueOf(nv21[0]));
image.close();
}
Однако длина массива не соответствует ожидаемой (1280 * 960 = 1 228 800, nv21.length возвращает 12 979 200), а nv21 [0] дает случайные значения.
Что я делаю не так?
Заранее спасибо