Как я могу сделать снимок, используя ARCore Camera с объектами? - PullRequest
0 голосов
/ 24 декабря 2018

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

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

Ответы [ 2 ]

0 голосов
/ 06 января 2019

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

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

0 голосов
/ 24 декабря 2018

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

public Image acquireCameraImage()

Этот метод позволяет вам получить изображение с камеры, которое соответствует текущему кадру и возвращает Androidimage 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
}
...