Я пытаюсь получить растровое изображение из текущего кадра моей ARSession с помощью ARCore. Но он всегда равен нулю. Я уже давно ищу в Интернете, но не могу понять, что я делаю неправильно.
try {
capturedImage = mFrame.acquireCameraImage();
ByteBuffer buffer = capturedImage.getPlanes()[0].getBuffer();
byte[] bytes = new byte[buffer.capacity()];
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length,null);
if (bitmap == null)
Log.e(TAG,"Bitmap was NOT initialized!");
} catch(Exception e){
}
Я получаю mFrame
из onDrawFrame
моего GLSurfaceView
, который я использую для отображения изображения с камеры. Все работает отлично, за исключением того, что мой Bitmap равен нулю.
Я использую кнопку, так что используется только один кадр, как показано ниже:
scanButton = (Button) findViewById(R.id.scanButton);
scanButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
checkbox = false;
if (capturedImage!=null) capturedImage.close();
BitmapMethod();
}
});
capturedImage
, buffer
и bytes
не равны нулю.
Возможно, что-то не так с mFrame.acquireCameraImage()
?
Большое спасибо