Сохранение ARCore Image Database между сессиями - PullRequest
0 голосов
/ 24 октября 2018

первый раз.

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

Заранее спасибо.

РЕДАКТИРОВАТЬ должен был упомянуть, я использую Unity (извините, я новичок).

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете использовать функцию сериализации для создания байтового массива или выходного потока в зависимости от того, используете ли вы Android или Android NDK.

Для NDK:

void ArAugmentedImageDatabase_serialize(
      const ArSession *session,
      const ArAugmentedImageDatabase *augmented_image_database,
      uint8_t **out_image_database_raw_bytes,
      int64_t *out_image_database_raw_bytes_size
    )

Для Android:

public void serialize (OutputStream outputStream)

Для Unity: сначала вам нужно импортировать изображение, а в настройках импорта вы должны установить флажок «Чтение / запись включен».Затем вы должны конвертировать изображение в RGBA32 или RGB24.Потому что ARCore поддерживает только эти два формата.

        Texture2D empty = new Texture2D(ImportedImage.width,ImportedImage.height, TextureFormat.RGBA32, false);
        empty.SetPixels(ImportedImage.GetPixels());
        empty.Apply();

Затем вы можете использовать databaseTest.AddImage("first",empty); Однако эта база данных должна использоваться в вашем поле базы данных дополненных изображений ARCoreSessionConfig, например:

enter image description here

В противном случае приложение зависает, я не уверен, почему.Удачи!

...