[英]HTML5 canvas toDataURL sometimes returns “data:,” instead of the image
我用document.createElement("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/aH3AAAgAElEQVR4XuzcQREAAAjDM..."
我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();
编辑:似乎您的画布包含太多数据,无法作为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:,"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.