javascript - HTML5 canvas toDataURL 有时返回 "data:,"而不是图像

标签 javascript html html5-canvas

我使用 document.createElement("canvas") 创建了一个 Canvas :

var canvas = document.createElement("canvas");
canvas.width = width;     // width = 4000 or more
canvas.height = height;   // height = 5000 or more

然后我使用canvas.toDataURL()来获取它的base64字符串:

var str = canvas.toDataURL();

但“str”有时返回为“data:,”,其中没有图像数据。就这六个字符。

有时它会返回正确的字符串,例如 "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAEGgAABPsCAYAAABg/aH3AAAgAElEQVR4XuzcQREAAAAjDM..."

我的canvas.width太大了....

最佳答案

您应该尝试显式创建一个 2D 上下文,然后在其中绘制一个空形状,例如:

var canvas = document.createElement("canvas");
canvas.width = 4000;
canvas.height = 5000;
var ctx=canvas.getContext('2d');
ctx.fillRect(0,0,0,0);
canvas.toDataURL();

编辑:您的 Canvas 似乎包含太多数据,无法导出为 dataUri:

var canvas = document.createElement("canvas");
canvas.width = 400000000;
canvas.height = 500000000;
var ctx=canvas.getContext('2d');
ctx.fillRect(0,0,0,0);
canvas.toDataURL();
// outputs : "data:,"

关于javascript - HTML5 canvas toDataURL 有时返回 "data:,"而不是图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16077010/

相关文章:

javascript - for 循环中的变量

javascript - 如何在 Google 跟踪代码管理器中测试数据层变量?

javascript - 使网格一半可点击

jquery - HTML5 Canvas 中的图片点击事件

javascript - JS中如何模拟鼠标移动程序生成漂亮的星系?

ruby-on-rails - 无法从命名的 javascript 函数访问元素

javascript - 一次 3D 翻转多张卡片

javascript - ReactJS:未捕获的语法错误:意外的 token (

html - 如何将 pandoc_options 作为 output_options 传递给 rmarkdown::render()

html - 使用 OOoWrite,我想添加自定义 html 元素