JavaScript Canvas : in firefox is empty

标签 javascript angularjs html firefox canvas

我有一个问题 - bug。

在所有浏览器中,除了 ff 之外,一切都可以,但有时在 Firefox 中,特别是在大于 ~500kb 的图像上,我看到 canvas toDataUrl 返回空数据,但 base64 图像是正常的(e.targer.result) 不为空:

var reader = new FileReader();
reader.onload = function(e) {
  var img = new Image();
  img.src = e.target.result;
  var mainCanvas = document.createElement("canvas");
  mainCanvas.width = img.width;
  mainCanvas.height = img.height;
  var ctx = mainCanvas.getContext("2d");
  ctx.drawImage(img, 0, 0, mainCanvas.width, mainCanvas.height);
  scope.imagecontent = mainCanvas.toDataURL('image/jpeg', 100);
  if (!scope.$$phase) {
    scope.$apply();
  }
};
reader.readAsDataURL(files[0]);

为什么会这样?我做错了什么?怎么解决呢?如何从canvas中获取非空的canvas数据? (我也使用 Angular )

最佳答案

您应该等待图像加载:

var img = new Image();
img.onload = function() {
   //do stuff here
}
img.src = e.target.result;

关于JavaScript Canvas : in firefox is empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502729/

相关文章:

javascript - 在 ng-options 中显示最新添加的项目

html - jquery mobile - 页面不刷新

javascript - 从动态表中获取要保存在 localStorage 中的字段值 - html 和 javascript

javascript - ( Node :71307) [DEP0079] DeprecationWarning

javascript - 为什么 Javascript `if...else if` 不以 `else` 结尾?

android - 如何自动刷新 ionic 列表

angularjs - Fullcalendar Angular/Node.JS http 请求 : TypeError: Converting circular structure to JSON (at Object. stringify)

php - 根据mysql字段和php变量状态选择字段下拉选择状态

html - 有人可以帮忙弄清楚我在 testdome 上的回答有什么问题吗?

javascript - 使用ajax调用php函数时遇到问题