剪切斜线画布/Javascript?
我看了很多教程,目前正试图剪下右上角的部分,但只能剪成一条直线。不是,我一直在想,我该如何去切割这件作品上剩余的倾斜线。我该怎么做呢 这就是我说的那句话: 小提琴:剪切斜线画布/Javascript?,javascript,canvas,Javascript,Canvas,我看了很多教程,目前正试图剪下右上角的部分,但只能剪成一条直线。不是,我一直在想,我该如何去切割这件作品上剩余的倾斜线。我该怎么做呢 这就是我说的那句话: 小提琴: 在新画布上使用“剪辑”方法仅剪切原始画布的一部分 乙二醇 这似乎是一个非常好的答案,但我对这一点非常陌生,不知道如何将其添加到我的代码中。你有没有办法把这个放在小提琴上?这对我帮助很大。只需将它放在img.onload函数中,替换Jctx.drawImage调用,并将ctx替换为Jctx。我很抱歉,如果这让你感到困扰,但我真的不知道
在新画布上使用“剪辑”方法仅剪切原始画布的一部分 乙二醇
这似乎是一个非常好的答案,但我对这一点非常陌生,不知道如何将其添加到我的代码中。你有没有办法把这个放在小提琴上?这对我帮助很大。只需将它放在
img.onload
函数中,替换Jctx.drawImage
调用,并将ctx
替换为Jctx
。我很抱歉,如果这让你感到困扰,但我真的不知道该怎么做。我尝试用img.onload=function
更改我的Jctx.drawImage
。这让我的两张照片都消失了。如果没有坐标(你想要的是馅饼的哪一部分),我无法帮助你,我不知道你需要的是图像的哪一部分img.onload=function()。从每个坐标中减去最左上方的坐标。使用该坐标列表来追踪剪辑路径moveTo(x,y)
第一点,lineTo(x,y)
其他点。然后使用负左上角(因为需要将饼图位移动到新图像中)坐标(在减法之前)绘制图像。Jctx.drawImage(img,-left,-top)
<body>
<canvas id="NewCanvas" height="800" width="800">
</canvas>
</body>
var can=document.getElementById("NewCanvas");
var Jctx=can.getContext("2d");
var img = new Image();
img.onload = function() {
Jctx.drawImage(img,150,10);
//drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);
Jctx.drawImage(img,150, 45, 150, 100, 100, 300, 150, 100);
}
img.src='http://images.sodahead.com/polls/004087283/3238285773_0912_holiday_pie_slicespreview_answer_103_xlarge.jpeg';
// ctx is the new canvas
ctx.save(); // save the current state
ctx.moveTo(0,0);
ctx.lineTo(150,0);
ctx.lineTo(75,150);
ctx.closePath();
ctx.clip();
ctx.drawImage(img,0,0); // new image is clipped
ctx.restore(); // revert to old state and removes the clip.