Как я могу сделать снимок, используя ARCore Camera с объектами?

Я создаю приложение, используя ARCore для отображения некоторых изображений на пустой поверхности. Я хочу захватить изображение той поверхности, где отображается объект. Я положил кнопку захвата на экране камеры AR.

Возможно ли захватить этот вид объектами в камере ARCore?

2 ответа

Если вам просто нужен скриншот вида ARCore, вы можете попробовать использовать некоторые функции Android, такие как PixelCopy.request(view, bitmap, (copyResult)->{}) на вид фрагмента ARCore.

Источник: https://codelabs.developers.google.com/codelabs/sceneform-intro/index.html?index=..%2F..io2018

Вы можете захватить текущий ARFrame, используя следующий публичный метод:

public Image acquireCameraImage()

Этот метод позволяет вам получить изображение с камеры, которое соответствует текущему кадру и возвращает Android image object который содержит данные изображения с камеры. Формат возвращаемого изображения - AIMAGE_FORMAT_YUV_420_888.

Для вида, содержащего трехмерные объекты Sceneform, используйте getScreenShot() метод:

public static Bitmap getScreenShot(View view) {

    View screenView = view.getRootView();
    screenView.setDrawingCacheEnabled(true);
    Bitmap bitmap = Bitmap.createBitmap(screenView.getDrawingCache());
    screenView.setDrawingCacheEnabled(false);
    return bitmap;
}

... или используйте это:

fun onCameraClick(buffer: ByteBuffer, width : Int, height: Int): Bitmap {

    buffer.rewind()
    val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
    bitmap.copyPixelsFromBuffer(buffer)
    return bitmap
}
Другие вопросы по тегам