4
我需要一些帮助。我们似乎遇到了关于通过HTML 5/Canvas获取图像的base64方面的问题。如果我们使用画布的默认高度/宽度或硬编码高度和宽度,一切正常。但是,如果我们将画布高度/宽度设置为图像src的高度/宽度,那么图像将不会加载到画布中,因此我们不会将图像作为base64。iOS HTML5画布toDataURL
的代码片段,其工作原理:
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上的工作,但确实在Android上工作:
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;
}
我们需要能够建立基于画布高度/宽度在图像本身上。
任何指导或协助是最感谢。
附录:代码片段可以在iPad Mini上运行,但我们在iOS 4和iOS 7x以及iPhone 5/iOS8上遇到了问题。 iPad MINI拥有iOS 8 – 2014-10-02 01:36:20
iOS对画布和图像有一些限制 - https://github.com/scottjehl/Device-Bugs/issues/49。核实。 – Pinal 2014-10-02 05:45:48
@Pinal谢谢你,这就是我发现的问题。然而,我不能接受评论作为答案; P – 2014-10-02 11:56:22