我有一个html,里面已经有一个画布,并且画布周围有常规的html元素。
当我在外部html中使用html2canvas时,内部的canvas变得模糊而不是外部的元素。
我尝试在画布上下文中禁用scale
并在html2canvas选项上增加const options = {
scale : 2,
allowTaint : true,
}
const outerDiv = document.getElementById('outerDiv');
html2canvas(outerDiv, options)
.then(canvas => {
const ctx = canvas.getContext('2d');
ctx.mozImageSmoothingEnabled = false;
ctx.webkitImageSmoothingEnabled = false;
ctx.msImageSmoothingEnabled = false;
ctx.imageSmoothingEnabled = false;
window.open(canvas.toDataURL("image/png", 1.0));
})
无效。
<div id="outerDiv">
<h1>Crisp text!</h1>
<canvas></canvas>
</div>
HTML脱机示例:
{{1}}
注意:在我的实际上下文中,此内部画布是使用canvg库创建的,该库将svg转换为画布,但是我认为这是无关的,因为canvg的输出并不模糊。