使用jQuery dRawr和canvas的静态背景

qyyhg6bp  于 2023-10-17  发布在  jQuery
关注(0)|答案(1)|浏览(124)

我的工作有这个程序,需要人们画出他们的答案,我们都在工作,但现在他们希望能够有一个图像加载到画布上,能够绘制。我又一次成功地解决了这个问题。
然而,这张图片被拍摄并绘制到画布上,这意味着当有人擦除或清除绘图时,图像部分会被擦除或清除等。如何使图像静态且无法编辑?我只想让他们所画的是可编辑的。
下面是我例子:
网址:

<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”,则会显示图像,但用户能够编辑它。我已经找了一段时间,现在被难倒了,

kgsdhlau

kgsdhlau1#

我发现我需要将透明度设置为true,然后只需将一些ID添加到canvas标记本身,然后添加一个背景图像。仍然有一些css的问题,让它没有重复,并保持固定,但现在它停留在背景静态。我可以在它上面画画或擦掉,背景什么也不会发生。
也不确定别人会不会有这个问题,但我不得不放了!重要的标志,因为如果没有,画布使它自己的背景覆盖它。

"enable_transparency" : true,

#mycanvas {
    background-image: url("/assets/media/canvas_backgrounds/usmap.jpg") !important;
    background-repeat: no-repeat;
    background-size: 80% 80%;
    position:absolute;
    overflow: hidden;
    background-attachment:fixed;
    
    
}

相关问题