【发布时间】:2017-05-08 21:48:01
【问题描述】:
我想用相同的图像多次在画布上绘制,换句话说,我想应用代码,当我点击画布区域时会产生一个图像,当我再次点击其他地方时它会产生另一个图像,所以开。
<canvas></canvas>
但是当尝试再次绘制时,它会替换之前绘制的图像,然后绘制新图像。而不是将之前绘制的图像保留在画布上。
function drawAll(){
context.drawImage(imageObj, 0, 0, imageObj.width, imageObj.height,0, 0, 700, 618);
if(coordinates.length > 0){
coordinates.map((coord, key) =>{
context.beginPath();
context.moveTo(coord.startX, coord.startY);
context.lineTo(coord.toX,coord.toY);
context.strokeStyle="rgb(226, 104, 36)";
context.lineWidth=2;
context.stroke();
});
}
if(entry){
context.drawImage(imageObjBall, entry.posX-8, entry.posY-8, 16, 16);
}
}
编辑:嘿,抱歉忘记在此处插入此位
function handleClick(e){
if(!isDrawing && prize_id != null){
var pos = getMousePos(canvas, e);
mouseX = pos.x;
mouseY = pos.y;
$x_id=`#cor_x_${prize_id}`;
$y_id=`#cor_y_${prize_id}`;
context.clearRect(0, 0, 700, 618);
context.drawImage(imageObjBall, mouseX-8, mouseY-8, 16, 16);
entry={posX:mouseX,posY:mouseY};
$($x_id).text(mouseX);
$($y_id).text(mouseY);
drawAll();
}
}
注意:这是在 laravel 5 中,除此之外还有更多代码,但我 觉得这是您能够提供帮助所需的必要剪辑 我,但如果您需要更多,请让我在其中编辑更多代码 发帖
【问题讨论】:
-
您的问题简而言之:“如何向现有画布对象添加其他图像?”,对吧?
-
是的,但是同一个对象,而不是创建一个全新的对象。所以多“imageObjBall”s
标签: javascript html image canvas laravel-5