在 nativescript 中保存图像
Save image in nativescript
我有一个场景需要将 <Image />
标签中的图像保存到本地文件。代码确实将图像保存到文件中,但我得到一个空图像,我知道这听起来很简单,但我是 NS 的新手,在 google 上找不到任何东西,也许有人知道为什么?
XML:
<page>
<image src="pic.png" id="img"/>
</page>
JS:
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");
您可能会因为在完全加载之前保存图像而得到空图像。尝试在图像完全加载后保存图像,如下面的代码片段所示。
为了在加载图像后保存图像,我们使用图像的 loaded
事件和 isLoading
属性。
XML:
<page>
<image src="pic.png" loaded="onImageLoaded" id="img"/>
</page>
TS:
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");
}
}
我有一个场景需要将 <Image />
标签中的图像保存到本地文件。代码确实将图像保存到文件中,但我得到一个空图像,我知道这听起来很简单,但我是 NS 的新手,在 google 上找不到任何东西,也许有人知道为什么?
XML:
<page>
<image src="pic.png" id="img"/>
</page>
JS:
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");
您可能会因为在完全加载之前保存图像而得到空图像。尝试在图像完全加载后保存图像,如下面的代码片段所示。
为了在加载图像后保存图像,我们使用图像的 loaded
事件和 isLoading
属性。
XML:
<page>
<image src="pic.png" loaded="onImageLoaded" id="img"/>
</page>
TS:
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");
}
}