gpt4 book ai didi

javascript - html2canvas - 如何定义顶部、左侧、底部、右侧以进行自动裁剪?

转载 作者:搜寻专家 更新时间:2023-10-31 23:20:52 25 4
gpt4 key购买 nike

我有一个 1280x768 的页面。以下代码正在制作 1280x768 整页快照,但我需要忽略顶部 10px,左侧 10px,底部 10px,右侧 10px。

您可以在 document.body.appendChild(canvas); 之前或之后进行裁剪/缩放吗?使用 CSS3 或 JS 等?

window.takeScreenShot = function() {
html2canvas(document.getElementById("top"), {
onrendered: function (canvas) {
document.body.appendChild(canvas);
},
width:1280,
height:768
});
};

最佳答案

您可以简单地使用一个屏幕外 Canvas ,您将在其上绘制具有所需偏移量的渲染 Canvas 。

这是一个快速编写的函数,它可能无法满足所有要求,但至少可以给你一个想法: 请注意,它使用 latest html2canvas version (0.5.0-beta4) ,现在返回一个 Promise。

function screenshot(element, options = {}) {
// our cropping context
let cropper = document.createElement('canvas').getContext('2d');
// save the passed width and height
let finalWidth = options.width || window.innerWidth;
let finalHeight = options.height || window.innerHeight;
// update the options value so we can pass it to h2c
if (options.x) {
options.width = finalWidth + options.x;
}
if (options.y) {
options.height = finalHeight + options.y;
}
// chain h2c Promise
return html2canvas(element, options).then(c => {
// do our cropping
cropper.canvas.width = finalWidth;
cropper.canvas.height = finalHeight;
cropper.drawImage(c, -(+options.x || 0), -(+options.y || 0));
// return our canvas
return cropper.canvas;
});
}

然后这样调用它

screenshot(yourElement, {
x: 20, // this are our custom x y properties
y: 20,
width: 150, // final width and height
height: 150,
useCORS: true // you can still pass default html2canvas options
}).then(canvas => {
//do whatever with the canvas
})

由于 stacksnippets® 在其框架上使用了一些强大的安全性,我们无法在此处进行现场演示,但您可以在这个 jsfiddle 中找到一个。 .

哦,对于那些想要支持旧 html2canvas 版本的 ES5 版本的人,您只需将裁剪函数包装在 onrendered 回调中,或者这里是 a fiddle对于懒惰的人。

关于javascript - html2canvas - 如何定义顶部、左侧、底部、右侧以进行自动裁剪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41193995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com