我正在尝试将图像转换为base64但是我得到一个null结果,任何人都有线索?我找到了一些如何从相机拍摄照片并转换为b64的例子,但我找不到如何将图像标签转换为b64的任何内容。
<image @loaded="loaded" src="myimg.jpg">
var ImageSourceModule = require("tns-core-modules/image-source");
function loaded(args){
let imageSource = ImageSourceModule.fromNativeSource(args.object.nativeElement);
console.log(imageSource.toBase64String('jpeg'))
}
答案 0 :(得分:0)
由于在完全加载之前隐藏图像,您可能会获得空数据。尝试在完全加载后转换图片,如下面的代码段所示。
要在加载图片后进行转换,我们会使用图片的loaded
事件和isLoading
属性。
loaded(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 imageSource= ImageSource.fromNativeSource(img);
console.log(imageSource.toBase64String('jpeg'))
});
}else if(!img.isLoading&&img.isLoaded){
let imageSource= ImageSource.fromNativeSource(img);
console.log(imageSource.toBase64String('jpeg'))
}else{
console.log("image loading failed");
}
}