我需要一些帮助。我们似乎在使用HTML5/Canvas获取图像的base64时遇到了iOS相关的问题。如果我们使用默认的canvas高度/宽度或硬编码高度和宽度,一切都正常。但是,如果我们将canvas的高度/宽度设置为图像src的高度/宽度,则图像将无法加载到canvas中,因此我们将无法获取图像的base64。
以下是可用的代码片段:
以下是可用的代码片段:
function convertImageToBase64(imgUrl, callback) {
var canvas = document.createElement("canvas");
var context = canvas.getContext('2d');
// load image from data url
var imageObj= new Image();
imageObj.onload = function () {
var dataUrl;
context.drawImage(imageObj, 0, 0, canvas.width, canvas.height);
dataUrl = canvas.toDataURL("image/png");
callback.call(this, dataUrl);
canvas = null;
};
imageObj.src = imgUrl;
}
以下代码片段在安卓设备上可用,但在iOS设备上不可用:
function convertImageToBase64(imgUrl, callback) {
var canvas = document.createElement("canvas");
var context = canvas.getContext('2d');
// load image from data url
var imageObj= new Image();
imageObj.onload = function () {
var dataUrl;
canvas.width = imageObj.width;
canvas.height = imageObj.height;
context.drawImage(imageObj, 0, 0, canvas.width, canvas.height);
dataUrl = canvas.toDataURL("image/png");
callback.call(this, dataUrl);
canvas = null;
};
imageObj.src = imgUrl;
}
我们需要根据图片本身来确定画布的高度/宽度。
非常感谢您的指导和协助。