Canvas 在通过toDataURL另存为文件之前,是否可以修剪画布图像的某些部分?

Canvas 在通过toDataURL另存为文件之前,是否可以修剪画布图像的某些部分?,canvas,html5-canvas,Canvas,Html5 Canvas,我正在将画布保存为网页中的图像。我使用了html2canvas来获得画布(但我认为这并不重要) 除了图像的布局,一切都很完美 我需要像这样修剪图像: canvas.trim(0,15,canvas.width-30,canvas.height); 有什么简单的方法可以做到这一点吗?例如,类似这样的事情: canvas.trim(0,15,canvas.width-30,canvas.height); 顺便说一句,我想用纯JavaScript实现这一点 感谢您提供的各种提示。是的,您可以做到

我正在将画布保存为网页中的图像。我使用了
html2canvas
来获得画布(但我认为这并不重要)

除了图像的布局,一切都很完美

我需要像这样修剪图像:

canvas.trim(0,15,canvas.width-30,canvas.height);

有什么简单的方法可以做到这一点吗?例如,类似这样的事情:

canvas.trim(0,15,canvas.width-30,canvas.height);
顺便说一句,我想用纯JavaScript实现这一点


感谢您提供的各种提示。

是的,您可以做到这一点,以下是我的做法:

<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<img id="img" src="https://i.ytimg.com/vi/LRVsxe5OJVY/maxresdefault.jpg">

<script>
    function saveMask() {
        var element = document.getElementById('img');
        html2canvas(element, {allowTaint: true}).then(h2c => {
            var canvas = document.createElement("canvas");
            canvas.height = 170;
            canvas.width = element.width - 300;

            var ctx = canvas.getContext('2d')
            ctx.drawImage(h2c, -150, 0);

            document.body.appendChild(canvas);
            element.parentNode.removeChild(element);
        });
    }
    setTimeout(saveMask, 2000);
</script>

函数saveMask(){
var元素=document.getElementById('img');
html2canvas(元素,{allowTaint:true})。然后(h2c=>{
var canvas=document.createElement(“canvas”);
高度=170;
canvas.width=element.width-300;
var ctx=canvas.getContext('2d')
ctx.drawImage(h2c,-150,0);
document.body.appendChild(画布);
element.parentNode.removeChild(元素);
});
}
setTimeout(saveMask,2000);

向我们展示您的代码……代码非常简单,只是一个标准的html2canvas代码。