html用不了png的图片,javascript-空白PNG /污染的画布可能无法导出(不使用图像)

我正在尝试将相当简单的html导出到canvas,然后导出到png.为此,我正在使用rasterizeHTML(http://cburgmer.github.io/rasterizeHTML.js/).

我面临的问题是,我收到一条警告,例如正在加载外部图像/资源,但我没有.

这是我尝试过的:

HTML:

使用Javascript

var canvas=document.getElementById("rasterizer");

rasterizeHTML.drawHTML('

canvas.toDataURL("image/png");

html只渲染2个圆圈,一个在另一个圆圈之上. Rasterizer可以在画布上毫无问题地显示此内容,但是当我尝试运行.toDataURL时,我遇到了以下两个问题之一:

>与画布大小相同的空白图像(如果这是我第一次运行代码).

> SecurityError:无法在“ HTMLCanvasElement”上执行“ toDataURL”:受污染的画布可能无法导出.

我没有主意,因为这应该发生在外部资源上,而不是完全内联的d-html.

有人知道为什么会发生这种情况吗?谢谢.

解决方法:

这里有两件事在起作用:

>您应该等待rasterizeHTML.drawHTML完成,然后才能从画布中获得期望:

rasterizeHTML.drawHTML('

var dataUrl = canvas.toDataURL("image/png");

console.log(dataUrl);

});

> Safari和一旦在其中绘制了HTML(实际上是SVG),Webkit就无法从画布上回读.请参阅https://github.com/cburgmer/rasterizeHTML.js/wiki/Browser-issues#wiki-webkit.Chrome和Safari均已提交错误(同样,请参见链接),但在此之前,可悲的是Firefox是唯一允许您读取它的浏览器.

标签:javascript,html5,rasterize

来源: https://codeday.me/bug/20191011/1892678.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值