Javascript 在画布中选择绘制的对象

Javascript 在画布中选择绘制的对象,javascript,html,canvas,Javascript,Html,Canvas,我在画布中绘制了一幅带有context.drawImage的图像,我想选择该图像,并将其拖放到与MS Paint selection tool相同的画布中。如何用javascript编写代码 函数cropxStart、yStart、xLast、yLast{ canvas.width=xLast-xStart; canvas.height=yLast-yStart; context.clearRect0,0,canvas.width,canvas.height;drawFromAuxxStart

我在画布中绘制了一幅带有context.drawImage的图像,我想选择该图像,并将其拖放到与MS Paint selection tool相同的画布中。如何用javascript编写代码

函数cropxStart、yStart、xLast、yLast{ canvas.width=xLast-xStart; canvas.height=yLast-yStart; context.clearRect0,0,canvas.width,canvas.height;drawFromAuxxStart,yStart,xLast,yLast,0,0; 返回canvas.toDataURL; } //img是我的原始图像 函数选择xstart、yStart、xLast、yLast{ selection.src=cropxStart、yStart、xLast、yLast; selection.draggable=true; context.clearRect0,0,canvas.width,canvas.height; canvas.width=img.width; canvas.height=img.height; context.clearRect0,0,canvas.width,canvas.height; context.drawImageimg,0,0; context.clearRectxStart,yStart,xLast-xStart,yLast-yStart; context.drawImageselection,0,0; } 使用,这应该不会那么难

要做的事情:

创建包含x、y和原始图像的图像对象 把它渲染成画布 倾听鼠标移动并检查是否按下鼠标按钮 在鼠标和画布上的图像之间进行简单的点碰撞检测,以便能够选择并拖动鼠标 装载和运输:

3监听鼠标移动并使用移动图像

4指针碰撞检测

JSFiddle:

希望这对你有帮助:

使用,这应该不会那么难

要做的事情:

创建包含x、y和原始图像的图像对象 把它渲染成画布 倾听鼠标移动并检查是否按下鼠标按钮 在鼠标和画布上的图像之间进行简单的点碰撞检测,以便能够选择并拖动鼠标 装载和运输:

3监听鼠标移动并使用移动图像

4指针碰撞检测

JSFiddle:


希望这对你有帮助:

画布就像一幅画。一旦绘制到它,就不能移动对象。只能清除画布并向其绘制新内容。因此,在画布上移动对象不是两行代码。如果你想让我修改完整的代码,请告诉我。好的。我试着用原版的另一个帆布副本来做。我把我的图像放在辅助画布上,用第一块画布上的选择坐标,我试图只保存为图像。我被卡住了画布就像一幅画。一旦绘制到它,就不能移动对象。只能清除画布并向其绘制新内容。因此,在画布上移动对象不是两行代码。如果你想让我修改完整的代码,请告诉我。好的。我试着用原版的另一个帆布副本来做。我把我的图像放在辅助画布上,用第一块画布上的选择坐标,我试图只保存为图像。我被困在那里了一个很好的解决方案!一个非常好的解决方案!
<script type="text/javascript" src="https://gustavgenberg.github.io/handy-front-end/Canvas.js"></script>
<script type="text/javascript" src="https://gustavgenberg.github.io/handy-front-end/Pointer.js"></script>
const image = {
    image: new Image(),
    x: canvas.width / 2 - image.width / 2, // centered in canvas
    y: canvas.height / 2 - image.height / 2 // centered in canvas
};

image.image.src = ' <url> ';
const canvas = new Canvas('my-canvas', 500, 500).start();

canvas.on('draw', function ( renderer ) {
    renderer.drawImage(image.image, image.x, image.y);
});
const pointer = new Pointer( canvas.element );

let moveImage = false;

pointer.on('move', function ( event ) {
    if( moveImage ) {
        image.x += (event.x - pointer.getMoveHistory(-2).x);
        image.y += (event.y - pointer.getMoveHistory(-2).y);
    }
});
pointer.on('down', function () {

    moveImage = pointer.touches({ x: image.x, y: image.y, width: image.image.width, height: image.image.height });

});

pointer.on('up', function () {

    moveImage = false;

});