项目中要实现div的截图功能,使用了html2canvas截的图比较模糊,我之前也记录过这个问题,html2canvas 实现网页截图,但是现在要对截图的精度进行优化,截出来的图片要实现打印照片的功能,也就是说html2canvas截图至少要达到300dpi,这样打印出来的图片才不会失真 !这个问题真是难到我了,我在网上搜了很多解决html2canvas截图不清楚的文章看,发现大部分网友都赞同先放大canvas到2倍,然后再缩小画布(渲染的)大小,要设置canvas的画布大小,使用的是canvas.width 和 canvas.height;要设置画布的实际渲染大小,使用的style或CSS设置的 width 和height,只是简单的对画布进行缩放。比如: var scaleBy=2;//缩放比例 var owidth=$("#cj1").outerWidth(); //准备截图div的宽 var oheight=$("#cj1").outerHeight(); var mycanvas = document.createElement("canvas"); mycanvas.height = oheight*scaleBy; mycanvas.width = owidth*scaleBy; mycanvas.style.width = owidth + "px"; mycanvas.style.height = oheight + "px"; var cxt = mycanvas.getContext("2d"); cxt.scale(scaleBy, scaleBy); html2canvas(document.getElementById("cj1"), {
html2canvas提升像素,深入学习html2canvas的使用 / 提高html2canvas截图精度 / 提高dpi
最新推荐文章于 2024-05-09 15:27:49 发布
为了解决html2canvas截图模糊问题,通过放大canvas尺寸并缩小显示大小来提高清晰度。然而,即使这样,截图的dpi仍为96。在html2canvas作者的GitHub中找到了增加dpi和scale选项的方法,但该变更未反映在官方文档中。通过设置dpi为300,理论上可以得到更高分辨率的截图,但实际上图片大小变为原来的3.125倍,dpi并未真正改变。目前仅能略微提升截图质量,寻找更多解决方案中。
摘要由CSDN通过智能技术生成