我不确定如何指定要保存的文件路径(如../images/screen - snapshot .png)我尝试保存图像,如
html2canvas($my-div, {
useCORS: true,
allowTaint: true,
onrendered: function (canvas) {
var img = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
location.href = img;
}
});
这个被下载到我的系统下载。如何将其保存到项目内的文件夹(想要指定要保存文件的路径)?
你必须使用一些库,如Canvas2Image下载图像。用户将由它自己指定图像路径(你不知道在哪里保存它,因为可能没有这样的目录"C:Users{SomeUsername}Downloads"
html2canvas($my-div, {
onrendered: function(canvas) {
return Canvas2Image.saveAsPNG(canvas);
}
});
终于解决了这个问题。帮助我在本地存储中保存画布的插件是来自devgeeks的canvas2image插件。直接将画布作为参数传递给插件的save函数,该函数将画布作为图像保存到本地存储。
html2canvas($my-div, {
height: myDivHeight,
width: 350,
useCORS: true,
allowTaint: true,
proxy: "your url",
onrendered: function (canvas) {
window.canvas2ImagePlugin.saveImageDataToLibrary(
function(msg){
console.log(msg) //path where image is saved
},
function(err){
console.log(err);
},
canvas // pass canvas as third parameter
);
}
});
我使用html2canvas库捕获当前屏幕,并使用canvas2Image插件将其保存到我的本地存储。干杯! !
这是截图上传的方式
步骤1:
在你的html文件中包含html2canvas CDN
步骤02:
<form id="imgupload" enctype="multipart/form-data">
<input type="hidden" name="imagename" id="imghidden">
</form>
<canvas id=img>
<img src="....">
</canvas>
<button id="imgupload"></button>
步骤03:
$("#imgupload").click(function(){
html2canvase($("#img"),{
onrendered:function(canvas)
{
var canvasinfo=canvas;
$(#imghidden).val(canvasinfo.toDataURL('image/png'));
var formid=$("#imgupload")[0];
var data=new FormData(formid);
$.ajax({
type:"post",
url:"dataSave.php",
data:data,
contentType: false,
cache: false,
processData:false,
success:function (data) {
console.log(data);
},error:function(error)
{
console.log(error);
}
});
}
});
});
步骤04:
将此代码放入dataSave.php文件
<?php
$filteredData=substr($POST['imghidden'],strpos($_POST['imghidden'],',')+1);
$DecodeData=base64_decode($filteredData);
//Now you can upload image inside the folder
$imgPath='img'.time().'.png';
file_put_contents($imgPath,$DecodeData);
?>