我遇到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事件停止触发。
有什么建议吗?
答案 0 :(得分:2)
最终我解决了这个问题, 我试图同时加载100多张图像。
什么hapend是关于更多ram应用程序的新手机,因为它有足够的空间来保存图像,另一方面在旧手机上,当ram用完因错误而无法加载图像< / p>
所以我改变了我的代码,他将同时加载一个图像