Comment utiliser une image capturée avec react-native-camera

je peux obtenir le réagissent-native-appareil photo module pour accéder à la caméra et enregistrer une image. Cependant, je ne peux pas comprendre comment afficher cette image à l'utilisateur.

Ce que j'essaie:

Ici, je prends la photo. Cela génère ce qui semble être une .jpg fichier 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');
        }); 
    }

par contre, Si j'essaie de rendre l'image:

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

j'ai cette erreur:

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

Comment je peux prendre une photo, enregistrer state de ma demande, et la rendre?

19
demandé sur YPCrumble 2015-10-15 20:40:00

2 réponses

la solution était d'activer le enregistrer à l'option de disque vs. l'option save to cameraRoll:

<Camera
  captureTarget={Camera.constants.CaptureTarget.disk}
  // Rest of Camera options here
/>
26
répondu YPCrumble 2015-10-15 18:31:03

donc, j'ai utilisé la réponse @YPCrumble pendant un certain temps.

mais maintenant je dois sauver l'image dans mon rouleau de caméra.

si quelqu'un veut continuer à économiser dans le rouleau de caméra, vous devez lier manuellement la bibliothèque RTCCameraRoll.

Documentation à la bibliothèque de liens ici:

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

C'est très simple:

Vous pouvez trouver le RCTImage.xcodeproj dans votre node_modules/réagir indigènes/Bibliothèques/CameraRoll

faites glisser et déposez ce fichier dans le dossier Bibliothèques de votre projet XCode.

après cela, cliquez sur votre projet principal, et trouvez dans le panneau de droite "Construire Des Phases".

à L'intérieur de "Link Binary With Libraries", faites glisser et déposez le fichier appelé "libRCTCameraRoll.un " de gauche - > bibliothèques - > RTCCameraRoll.XCODEPROJ - > produits

1
répondu Luis Antonio Pestana 2017-09-19 00:00:27