我在网上找到了这个代码,它看起来效果很好。
但我很困惑,因为最后一部分是为了什么。
function toDataUrl(src, callback, outputFormat) {
var img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function() {
var canvas = document.createElement('CANVAS');
var ctx = canvas.getContext('2d');
var dataURL;
canvas.height = this.height;
canvas.width = this.width;
ctx.drawImage(this, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
callback(dataURL);
};
img.src = src;
if (img.complete || img.complete === undefined) {
img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
img.src = src;
}
}
img已经传递了分配给它的src。然后,如果完成或完成未定义(不确定这是什么),img.src会为其分配一些其他dataURL。我认为这将覆盖原始分配,然后传入的src再次分配给它????
它确实有用,但我很好奇它在做什么?
谢谢,
汤姆
答案 0 :(得分:0)
最后一部分是向img添加1px Gif,img未完全填充。再次分配src是一种重试