gpt4 book ai didi

javascript - 访问缓存图片phonegap

转载 作者:行者123 更新时间:2023-12-04 05:04:02 25 4
gpt4 key购买 nike

我正在使用 Phonegap 的相机功能在我的应用程序中保存图片。当我尝试通过其保存的 file_URI(我从相机获取的)获取文件时,图像不会加载。

函数 toBase64(url) {
var canvas = document.createElement("canvas");
var ctx = canvas.getContext('2d');
var img = new Image();
img.src = url;
如果 ( img.height != 0 ) {
var 高度 = img.height, 宽度 = img.width;
canvas.height = 高度;
canvas.width = 宽度;
ctx.drawImage(img, 0, 0, width, height);
试试{
var dataURL = canvas.toDataURL("image/jpg");
return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}
catch (err) { console.log("ERROR "+ err);}
}
其他{
alert("错误的路径!");
}
}

图像保存在应用程序的缓存文件夹中(/data/data/my.app/cache)

关于问题可能来自哪里的任何想法?

最佳答案

我解决了这个问题,不得不使用 Phonegap 的 FileReader 对象。

var base64;
函数 toBase64(文件名){
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function(fileSystem) {
//文件系统的根是应用程序的缓存文件夹:/storage/emulated/0/Android/data/com.yourcompany.whatever
fileSystem.root.getFile(filename, null, function(fileEntry) {
fileEntry.file(函数(文件){
var reader = new FileReader();
reader.onloadend = 函数(evt){
控制台日志(evt.target.result);
//触发回调
base64 = evt.target.result;
};
reader.readAsDataURL(文件);
}, 失败);
}, 失败);
}, 失败);
//我们等待阅读器完全加载,然后我们返回 base64 加密数据!
while ( base64 == "") {}
base64 = base64.replace(/^data:image\/(png|jpg|jpeg);base64,/, "");
返回base64;
}

不要认为 "while(base64 == "") {}"是一个很好的做法......

编辑:我使用了 this gentleman 的 do_when 方法而不是空循环!

关于javascript - 访问缓存图片phonegap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15749730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com