toDataURL崩溃Chrome

时间:2014-08-04 00:30:35

标签: javascript canvas hyperlink three.js todataurl

所以我正在为three.js创建一个Tile Renderer,一切似乎都在工作。

它的运作方式如下:

a)创建一堆相机, b)渲染每个摄像机中的场景 c)创建' toDataURL'并下载。

一些代码:

  this.renderer.render( this.scene , this.camera );

  var imgData = this.renderer.domElement.toDataURL();      

  //this.imageData.push( imgData );

  var a = document.createElement('a');

  a.href = imgData;

  a.download = this.title + "_"+this.x+"_"+this.y+".png";
  a.click();

现在因为我这样做了多次,(理想情况下是任意次数)。它最终可能会产生数百张图像。

这样做会导致我的Chrome标签崩溃。每次都是字面意思。我想知道是否还有阻止这种情况发生?通过在运行chrome时设置标志,或者使用代码执行某些操作。我尝试过为每个渲染调用设置超时(AKA暂停渲染器,而不是渲染1个图像并每隔10秒保存一次),但即使这样也无法正常工作。

您可以在此处查看崩溃:http://cabbi.bo/ENOUGH/(按' p'尝试捕获图像,页面需要片刻加载)。

提前感谢您的帮助!

Isaac / Cabbibo

1 个答案:

答案 0 :(得分:4)

在我的包装盒上,将大图像保存为PNG会导致Chrome(OS X 10.10,Chrome 40)崩溃。保存image as a JPG可解决此问题。我猜测PNG数据字符串太大了。

var imgData = renderer.domElement.toDataURL("image/jpeg");