javascript - 仅在 iOS 中返回透明图像的 webgl Canvas 的 toDataURL()

标签 javascript ios canvas webgl

我有一个带有 webGL 绘图的 Canvas ,由 Blend4Web 框架创建。

我尝试使用 toDataURL() 保存图像:

image= $('canvas')[0].toDataURL();

除 iOS(iphone 和 ipad)外,所有平台都完美运行

我了解 webGL 方面:Canvas toDataURL() returns blank image only in Firefox , preserveDrawingBuffer 已启用。

另外,我知道 iOS 的限制:iOS HTML5 Canvas toDataURL ,但是 Canvas 很小,即使是 100×500px 的图像也是空白的(它是 0,05MP,限制是 3MP)。

我使用 toDataURL() 在服务器上发送图形信息。

最佳答案

以下是 toDataURL 的 polyfill。为了让 toBlob 在 iOS 上工作,您需要一个额外的 polyfill,我推荐以下 polyfill:https://github.com/blueimp/JavaScript-Canvas-to-Blob .基本上只要下载 canvas-to-blob.min.js .我会推荐其他人提供的直接 toDataURL polyfill,但我找不到。

if (typeof HTMLCanvasElement.prototype.toDataURL !== "function") {
  HTMLCanvasElement.prototype.toDataURL = function() {
    this.toBlob(function (blob) {
      var fileReader = new FileReaderSync();
      return fileReader.readAsDataURL(blob);
    });
  };
}

关于javascript - 仅在 iOS 中返回透明图像的 webgl Canvas 的 toDataURL(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47009400/

相关文章:

javascript - Jquery动画错误

ios - 在 Google map 中显示带有独特数据的自定义标记

javascript - HTML5 Canvas 颜色帮助

javascript - 除非展开节点,否则 kendo treeview 数据源不会在 javascript 调试中显示子项

javascript - 带有 Javascript 的条纹表 DOM

javascript - 可以将自定义图标添加到 font-awesome-react

ios - 如何获得我想要的动画?

ios - 初始化 CoreML 模型时崩溃 : Error Domain=com. apple.CoreML Code=0 "Error in declaring network."

javascript - 拉斐尔元素中的重复图案

jquery - CSS3 或 Canvas 圆 Angular 六边形