Src到DataURL似乎不正确

时间:2017-03-28 16:33:31

标签: javascript

我在网上找到了这个代码,它看起来效果很好。

但我很困惑,因为最后一部分是为了什么。

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再次分配给它????

它确实有用,但我很好奇它在做什么?

谢谢,

汤姆

1 个答案:

答案 0 :(得分:0)

最后一部分是向img添加1px Gif,img未完全填充。再次分配src是一种重试