html2canvas输出选择div PHP

这段代码几乎可行
这会将整个页面输出为jpg
问题 :我如何只抓取'#myDiv'的内容并将其输出为jpg文件?

JS:

 $('.myButton').click(function(){ $('#myDiv').html2canvas();//<< has no effect var queue = html2canvas.Parse(); var canvas = html2canvas.Renderer(queue,{elements:{length:0}}); var img = canvas.toDataURL(); img.replace(/^data:image\/(png|jpg);base64,/, ""); $.post( "postIO.php", {img:img}, function(data) { //$('#recieve').append(data); }); return false; }); 

postIO.php:

 $canvasImg = $_POST['img']; //$canvasImg = str_replace('data:image/png;base64,', '', $canvasImg); $data = base64_decode($canvasImg); $File = "z.jpg"; $Handle = fopen($File, 'w'); fwrite($Handle, $data); fclose($Handle); 

从这里引用

我已经下载并尝试html2canvas,然后我发现jquery插件没有完成(它没有什么比捕获图像和创建canvas,没有用)所以我自己编写捕获代码。

 var el = $('div').get(0); function saveData(dturl){ //Upload here console.debug(dturl); } html2canvas.Preload(el, { complete: function(image){ var queue = html2canvas.Parse(el, image, {elements: el}), $canvas = $(html2canvas.Renderer(queue, {elements: el})); saveData($canvas[0].toDataURL()); } }); 

希望它对你有所帮助

所以要与你的程序一起使用,你必须写

 function saveData(dturl){ dturl.replace(/^data:image\/(png|jpg);base64,/, ""); $.post( "postIO.php", {img:dturl}, function(data) { //$('#recieve').append(data); }); } $('.myButton').click(function(){ var el = $('#myDiv').get(0); html2canvas.Preload(el, { complete: function(image){ var queue = html2canvas.Parse(el, image, {elements: el}), $canvas = $(html2canvas.Renderer(queue, {elements: el})); saveData($canvas[0].toDataURL()); } }); }); 

var canvasImg = canvasRecord.toDataURL("image/jpg"); ,您可能需要使用var data = canvasImg.replace(/^data:image\/(png|jpg);base64,/, "");替换它var data = canvasImg.replace(/^data:image\/(png|jpg);base64,/, "");

$canvasImg = $_POST['canvasImg']; 而不是$ _POST [‘img’]?