在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");
}
}
另外,不要忘记在图像加载完成且加载不成功时检查案例。