我的工作有这个程序,需要人们画出他们的答案,我们都在工作,但现在他们希望能够有一个图像加载到画布上,能够绘制。我又一次成功地解决了这个问题。
然而,这张图片被拍摄并绘制到画布上,这意味着当有人擦除或清除绘图时,图像部分会被擦除或清除等。如何使图像静态且无法编辑?我只想让他们所画的是可编辑的。
下面是我例子:
网址:
<div id="drawr-container" style="margin:20px;width:450px;height:450px;border:2px dotted gray;" img-src="<?php echo $response; ?>">
<canvas id="canvas-<?php echo $modQuestions->section_num; ?>" class="question-canvas drawr-canvas"></canvas>
</div>
jquery:
$(document).ready(function() {
if($(".question-canvas").length) {
function init_canvas1(){
$("#drawr-container .question-canvas").drawr({
"enable_transparency" : false,
"canvas_width" : 800,
"canvas_height" : 600
});
$("#drawr-container .question-canvas").drawr("start");
$("#drawr-container .question-canvas").drawr("load",$(this).parent().attr("img-src"));
}
init_canvas1();
$(".question-canvas").each(function(index) {
var ctx = $(this)[0].getContext('2d');
var img = new Image;
if($(this).parent().attr("img-src")) {
img.onload = function() {
ctx.drawImage(img, 0, 0);
}
img.src = $(this).parent().attr("img-src");
}
});
因此,如果img-src属性中的响应是“/assets/media/canvas_backgrounds/usmap.jpg”,则会显示图像,但用户能够编辑它。我已经找了一段时间,现在被难倒了,
1条答案
按热度按时间kgsdhlau1#
我发现我需要将透明度设置为true,然后只需将一些ID添加到canvas标记本身,然后添加一个背景图像。仍然有一些css的问题,让它没有重复,并保持固定,但现在它停留在背景静态。我可以在它上面画画或擦掉,背景什么也不会发生。
也不确定别人会不会有这个问题,但我不得不放了!重要的标志,因为如果没有,画布使它自己的背景覆盖它。