87,909
社区成员
发帖
与我相关
我的任务
分享
var takeHighResScreenshot = function(srcEl, scaleFactor) {
// Save original size of element
var originalWidth = srcEl.offsetWidth;
var originalHeight = srcEl.offsetHeight;
// Force px size (no %, EMs, etc)
srcEl.style.width = originalWidth + "px";
srcEl.style.height = originalHeight + "px";
// Create scaled canvas
var scaledCanvas = document.createElement("canvas");
// scaledCanvas.webkitImageSmoothingEnabled = false;
// scaledCanvas.mozImageSmoothingEnabled = false;
// scaledCanvas.imageSmoothingEnabled = false;
scaledCanvas.width = originalWidth * scaleFactor;
scaledCanvas.height = originalHeight * scaleFactor;
scaledCanvas.style.width = originalWidth + "px";
scaledCanvas.style.height = originalHeight + "px";
var scaledContext = scaledCanvas.getContext("2d");
scaledContext.scale(scaleFactor, scaleFactor);
var width = $(window).width();
var height = $(window).height();
html2canvas(srcEl, {
canvas: scaledCanvas,
width : width,
height : height,
allowTaint: false,
taintTest: false,
proxy: "/proxy.php",
logging: true,
onrendered: save
});
}
takeHighResScreenshot($(".editor-stage")[0], 1);
position:fixed,top:0px;left:0px
这样不会因为视区的大小而截图不同
另外:发现使用拉伸画布一倍的方法可以有效的提高分辨率
我每次截图不完整是开始的时候,我的截图区域的父级有tansform属性,影响到了子级的position:fixed
现在的问题是如果截图那么所截的区域会跑位,因为使用了fixed,还有所截区域超过了视区也会截图不全