在nativescript中保存图像

在nativescript中保存图像,nativescript,angular2-nativescript,nativescript-telerik-ui,Nativescript,Angular2 Nativescript,Nativescript Telerik Ui,我有一个场景,需要将图像从标记保存到本地文件。代码确实将图像保存到了文件中,但我得到了一个空图像,我知道这听起来很简单,但我是NS新手,在google上找不到任何东西,也许有人知道为什么 XML: <page> <image src="pic.png" id="img"/> </page> let img = page.getViewById("img"); let path = fs.path.join(fs.knownFold

我有一个场景,需要将图像从
标记保存到本地文件。代码确实将图像保存到了文件中,但我得到了一个空图像,我知道这听起来很简单,但我是NS新手,在google上找不到任何东西,也许有人知道为什么

XML:

<page>
   <image src="pic.png" id="img"/>
</page>
let img       = page.getViewById("img");
let path      = fs.path.join(fs.knownFolders.documents().path, "pic.png");    
let src       = ImageSource.fromNativeSource(img);
let saved     = src.saveToFile(path, "png");
<page>
   <image src="pic.png" loaded="onImageLoaded" id="img"/>
</page>
onImageLoaded(args) {
    console.log(args.eventName);
    console.log(args.object);

    var img = args.object;

    console.log("img.isLoading: " + img.isLoading);
    console.log("img.isLoaded: " + img.isLoaded);
    if(img.isLoading){

        img.on("isLoadingChange", function (args) {
            console.log("isloading",args.value);
            console.log("isloaded",args.object.isLoaded);
            let img       = args.object;
            let path      = fs.path.join(fs.knownFolders.documents().path, "pic.png");    
            let src       = ImageSource.fromNativeSource(img);
            let saved     = src.saveToFile(path, "png");
        });
    }else if(!img.isLoading&&img.isLoaded){
        let path      = fs.path.join(fs.knownFolders.documents().path, "pic.png");    
        let src       = ImageSource.fromNativeSource(img);
        let saved     = src.saveToFile(path, "png");
    }else{
        console.log("image loading failed");
    }
}

您可能会得到空图像,因为在图像完全加载之前保存了它。尝试在图像完全加载后保存图像,如下面的代码段所示

要在加载后保存图像,我们使用图像的
loaded
事件和
isloadeng
属性

XML:

<page>
   <image src="pic.png" id="img"/>
</page>
let img       = page.getViewById("img");
let path      = fs.path.join(fs.knownFolders.documents().path, "pic.png");    
let src       = ImageSource.fromNativeSource(img);
let saved     = src.saveToFile(path, "png");
<page>
   <image src="pic.png" loaded="onImageLoaded" id="img"/>
</page>
onImageLoaded(args) {
    console.log(args.eventName);
    console.log(args.object);

    var img = args.object;

    console.log("img.isLoading: " + img.isLoading);
    console.log("img.isLoaded: " + img.isLoaded);
    if(img.isLoading){

        img.on("isLoadingChange", function (args) {
            console.log("isloading",args.value);
            console.log("isloaded",args.object.isLoaded);
            let img       = args.object;
            let path      = fs.path.join(fs.knownFolders.documents().path, "pic.png");    
            let src       = ImageSource.fromNativeSource(img);
            let saved     = src.saveToFile(path, "png");
        });
    }else if(!img.isLoading&&img.isLoaded){
        let path      = fs.path.join(fs.knownFolders.documents().path, "pic.png");    
        let src       = ImageSource.fromNativeSource(img);
        let saved     = src.saveToFile(path, "png");
    }else{
        console.log("image loading failed");
    }
}

另外,不要忘记在图像加载完成且加载不成功时检查案例。