我在使用 image.onload
时遇到问题。
我正在做的是获取路径列表并将它们转换为 Base64
var img = new Image();
img.setAttribute('crossOrigin', 'anonymous');
img.onload = function() {
console.log("image done loading");
var canvas = document.createElement('canvas'),
width = img.width,
height = img.height;
if (width > height) {
if (width > maxSize) {
height *= maxSize / width;
width = maxSize;
}
} else {
if (height > maxSize) {
width *= maxSize / height;
height = maxSize;
}
}
canvas.width = width;
canvas.height = height;
canvas.getContext('2d').drawImage(img, 0, 0, width, height);
var dataURL = canvas.toDataURL("image/jpg", 0.8);
callback(imageObj, dataURL.replace(/^data:image\/(png|jpg);base64,/, ""));
};
img.src = URL;
现在,这在我的计算机上运行良好,但在我的手机 Galaxy2 (Android 4.1) 上,它只能成功上传 10 张照片之类的内容,然后就停止了。 我也在Android 4.4上检查过,工作正常。
我将图像添加到 HTML 中以查看图像是否真正加载, 并且只有一半的图像被正确加载。 看起来 onload 事件停止触发。
有什么建议吗?
最佳答案
终于解决了这个问题, 我尝试以这种方式同时加载 100 多个图像。
发生的情况是,在具有更多内存的新手机上,应用程序可以运行,因为它有足够的空间来保存图像,另一方面,在旧手机上,当内存耗尽时,会因为无法加载图像而引发错误
所以我改变了我的代码,他会同时加载一张图像
关于javascript - 图像无法在phonegap上正确加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29181809/