2016-08-02 13 views
1

Wie kann ich Foto src von nativescript-Kameramodul erhalten?Zugriff auf Bild src nativescript

public takePicture() { 
    cameraModule.takePicture().then(function(picture) { 
     console.log("Result is an image source instance"); 
     var image = new imageModule.Image(); 
     image.imageSource = picture; 
     console.dir(picture); 
    }); 
} 

console.dir Ausgang:

=== dump(): dumping members === 
{ 
    "android": { 
     "constructor": "constructor()function() { [native code] }" 
    } 
} 
=== dump(): dumping function and properties names === 
loadFromResource() 
fromResource() 
loadFromFile() 
fromFile() 
loadFromData() 
fromData() 
loadFromBase64() 
fromBase64() 
setNativeSource() 
saveToFile() 
height: 480 
width: 640 
=== dump(): finished === 

Wie bekomme ich das Bild src?

Ich möchte es auf Firebase hochladen, also brauche ich die src.

+0

Es tut mir leid. Ich habe meine Bearbeitung durcheinander gebracht. Ich habe gerade eine neue Bearbeitung eingereicht, um es zu beheben. Es tut mir Leid. Nächstes Mal bitte entfernen Sie diese Zeilen Zahlen und andere Sachen, und wir müssen Ihren Code nicht bearbeiten :) –

Antwort

4

zu Feuerbasis laden, müssen Sie das Bild über den Weg laden:

let imgsrc = this.imageSource.fromNativeSource(data); 
let path = this.utils.documentsPath(randomName); 
imgsrc.saveToFile(path, this.enums.ImageFormat.png); 

this.firebase.uploadFile(path).then((uploadedFile: any) => { 
    this.appSettings.setString("fileName", uploadedFile.name);   
     this.router.navigate(['/soundcloud']); 
     this.LoadingIndicator.hide();   
}, (error: any) => { 
    alert("File upload error: " + error); 
}); 
}, (err: any) => { 
    alert(err); 

});

+0

Was ist die 'Daten' in fromNativeSource (Daten); ? – IvRRimUm

+0

'data' Parameter ist natives Bildobjekt. Für Android ist es Bitmap und für iOS - UIImage –

+0

Leider kann ich nicht scheinen es funktioniert zu bekommen. Ich habe Bildobjekt, ich verstehe nicht, wie man den Weg vom Objekt bekommt. – IvRRimUm

2

figured it out, das funktioniert:

public takePicture() { 
    cameraModule.takePicture().then((picture) => { 
     var image = new imageModule.Image(); 
     image.imageSource = picture; 


     let savePath = fs.knownFolders.documents().path; 
     let fileName = 'img_' + new Date().getTime() + '_' + this.currentUserId.getValue() + '.' + enumsModule.ImageFormat.jpeg; 
     let filePath = fs.path.join(savePath, fileName); 
     picture.saveToFile(filePath, enumsModule.ImageFormat.jpeg); 

     this.photoService.uploadImage(filePath, fileName).then((data) => { 
      this._router.navigate(["/upload", fileName, this.currentUserId.getValue()]); 
     }); 
    }); 
    }