Javascript 如何在画布上同时绘制图像和草图
我想在画布上绘制一幅图像,然后允许用户通过sketch.js在上面绘制一些草图。现在的情况是:Javascript 如何在画布上同时绘制图像和草图,javascript,jquery,image,html5-canvas,sketching,Javascript,Jquery,Image,Html5 Canvas,Sketching,我想在画布上绘制一幅图像,然后允许用户通过sketch.js在上面绘制一些草图。现在的情况是: 1.the image has been drawn on the canvas successfully 2. but when my mouse over the canvas, then image disappeared, and the canvas shows empty 3. when I dragged the mouse, some sketch shows on the
1.the image has been drawn on the canvas successfully
2. but when my mouse over the canvas, then image disappeared, and the canvas shows empty
3. when I dragged the mouse, some sketch shows on the empty canvas(the sketch looks correct)
所以,我把两个函数都做对了,但我对两者之间的部分感到困惑。我希望在画布上画草图,上面有图像。这是我的密码:
index.html:
<canvas id="mysketch" width="578" height="400" style="margin: 0px; "></canvas>
我认为,在你调用素描方法时
sketch.js首先清除画布,然后允许您在画布上绘制一些东西。
正如您在链接中看到的,在第三个示例(即工具示例)中,图像不是通过drawImage方法绘制的。
它实际上是画布的背景,无论你在画布上画什么,它都会一直作为背景出现。
因此,您可以做的是:
或者执行与示例中相同的操作,即将图像设置为背景,
或者在画布后面制作一块宽度、高度和位置相同的新画布,并在其上绘制图像。然后在第二个屏幕上绘制草图。您确定没有用于“悬停”事件的css或其他功能吗?谢谢。但我认为它不起作用——我想先显示图像,然后再显示草图;对于两个画布,只有一个可以停留在顶部。对于第二个画布,请不要设置背景属性,这将使其透明。或者您可以先在画布上绘制图像,然后让用户在其上绘制草图,但最重要的是,您不清除画布,这会使图像消失。您是对的,sketch.js首先清除了画布,我已经修复了它。只允许一张画布,就可以了。再次感谢!伙计们,我一直在关注你们的答案。我有两块画布,一块我保留了img,另一块我画了草图。这是我的两层画布。现在在画布上画了草图后,我好像在画图像。我的问题是如何像使用橡皮擦一样擦除草图?帮助PLZ使用画布的上下文对象的clearRect(x、y、宽度、高度)
var mysketch = jQuery("#mysketch");
// draw the captured image to canvas
var displayImage = function() {
var context = mysketch.get(0).getContext("2d");
var image = new Image();
image.onload = function() {
context.drawImage(image, 0, 0);
}
// prepend the required image info again
image.src = dataURL;
// call sketch.js to draw sketch on the canvas
mysketch.sketch({defaultColor: "#ff0"});
}