Как я могу использовать захваченное изображение с реагировать на родную камеру

18

Я могу получить модуль react-native-camera для доступа к камере и сохранения изображения. Однако я не могу понять, как отобразить это изображение для пользователя.

Что я пытаюсь:

Здесь я делаю снимок. Это генерирует то, что выглядит как .jpg файл в assets-library://....

    _takePicture() {
        var self = this;
        this.refs.cam.capture(function(err, data) {
          this.setState({photo: data});
          console.log(err, data);
          // data is "assets-library://asset/asset.JPG?id=########-####-####-####-##########&ext=JPG"
          console.log('just took a picture');
        }); 
    }

Однако, если я пытаюсь сделать изображение:

    render: function() {
      return(
         <Image style={styles.image} source={{uri: this.state.photo}}/>
      );
    }

Я получаю эту ошибку:

No suitable image URL loader found for assets-library://asset/asset.JPG?id=.......

Как я могу сделать снимок, сохранить его в текущем state моего приложения и сделать его?

Теги:
react-native

2 ответа

25
Лучший ответ

Решение заключалось в том, чтобы включить параметр сохранить на диск по сравнению с опцией save to cameraRoll:

<Camera
  captureTarget={Camera.constants.CaptureTarget.disk}
  // Rest of Camera options here
/>
  • 0
    Camera.constants идет {}. Любые решения?
0

Итак, я использовал ответ @YPCrumble в течение некоторого времени.

Но теперь мне нужно сохранить изображение в рулоне камеры.

Если кто-то хочет продолжить сохранение в кадре камеры, вам необходимо вручную связать библиотеку RTCCameraRoll.

Документация для ссылки на библиотеку здесь:

https://facebook.github.io/react-native/docs/linking-libraries-ios.html#manual-linking

Это так просто:

Вы можете найти RCTImage.xcodeproj в своем node_modules/реагировать родной/Библиотеки/CameraRoll

Перетащите этот файл в папку "Библиотеки" в проекте XCode.

После этого щелкните в своем основном проекте и найдите в правой панели "Сформировать фазы".

Внутри "Link Binary With Libraries" перетащите файл под названием "libRCTCameraRoll.a" из левой панели → Библиотеки → RTCCameraRoll.xcodeproj → Продукты

Ещё вопросы

Сообщество Overcoder
Наверх
Меню