Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用html2canvas将带有背景图像的画布保存到服务器_Javascript_Jquery_Html_Canvas_Html2canvas - Fatal编程技术网

Javascript 使用html2canvas将带有背景图像的画布保存到服务器

Javascript 使用html2canvas将带有背景图像的画布保存到服务器,javascript,jquery,html,canvas,html2canvas,Javascript,Jquery,Html,Canvas,Html2canvas,我目前有一个脚本,它通过使用html2canvas从画布成功创建了一个图像,包括其包含的Div背景图像。我还有一个脚本,可以使用canvas2image插件将画布作为图像保存到服务器,但背景不显示 我遇到的问题是,当我尝试将二者结合起来,以便将Div bg和canvas作为图像保存到服务器时,没有发生任何事情,我认为这是由于canvas2image插件未启动造成的 这两个插件结合在一起的代码就在这里 function exportAndSaveCanvas() { html2canvas($

我目前有一个脚本,它通过使用html2canvas从画布成功创建了一个图像,包括其包含的Div背景图像。我还有一个脚本,可以使用canvas2image插件将画布作为图像保存到服务器,但背景不显示

我遇到的问题是,当我尝试将二者结合起来,以便将Div bg和canvas作为图像保存到服务器时,没有发生任何事情,我认为这是由于canvas2image插件未启动造成的

这两个插件结合在一起的代码就在这里

function exportAndSaveCanvas()  {

html2canvas($("#containingDiv"), { 
        background:'#fff',
        onrendered: function(canvas) { 

       // var imgData = canvas.toDataURL('image/jpeg'); <--This would create the image needed 
    //but I replaced with the line below to tie in the two plugins

        var screenshot = Canvas2Image.saveAsPNG(canvas, true);      

        canvas.parentNode.appendChild(screenshot);
        screenshot.id = "canvasimage";      
        data = $('#canvasimage').attr('src');
        canvas.parentNode.removeChild(screenshot);

        // Send the screenshot to PHP to save it on the server
        var url = 'upload/export.php';
        $.ajax({ 
            type: "POST", 
            url: url,
            dataType: 'text',
            data: {
                base64data : data
            }
        });

      }
   });

 }
函数exportAndSaveCanvas(){
html2canvas($(“#containingDiv”),{
背景:“#fff”,
onrendered:函数(画布){

//var imgData=canvas.toDataURL('image/jpeg');在写入另一幅图像之前,先将背景图像写入画布。关于将图像写入画布的MDN页面应涵盖以下内容:


顺便说一句,我不知道你为什么要用插件来做你用本机canvas API免费得到的任何东西。

dtanders说“顺便说一句,我不知道你为什么要用插件来做你用本机canvas API免费得到的任何东西。”

这让我觉得我让它变得比需要的更难,所以我去掉了一些代码。下面的脚本正是我需要的

function exportAndSaveCanvas()  {

        html2canvas($("#containingDiv"), { 
        background:'#fff',
        onrendered: function(canvas) {         
           var imgData = canvas.toDataURL('image/jpeg');   


    var url = 'upload/export.php';
        $.ajax({ 
            type: "POST", 
            url: url,
            dataType: 'text',
            data: {
                base64data : imgData
            }
        });     
        }

    }); //End html2canvas
    } // End exportAndSaveCanvas()

为什么不直接将背景图像加载到画布中呢?我是画布新手…不知道该怎么做。你如何取回它?它会被发送到HTMLC中的#containingDiv。这个函数可以在单击时初始化吗?例如,如果用户单击一个链接,它会从该点保存图像?然后我有一个表单将该图像发送给某人。是的,我按一下按钮就发射它。
function exportAndSaveCanvas()  {

        html2canvas($("#containingDiv"), { 
        background:'#fff',
        onrendered: function(canvas) {         
           var imgData = canvas.toDataURL('image/jpeg');   


    var url = 'upload/export.php';
        $.ajax({ 
            type: "POST", 
            url: url,
            dataType: 'text',
            data: {
                base64data : imgData
            }
        });     
        }

    }); //End html2canvas
    } // End exportAndSaveCanvas()