gpt4 book ai didi

c# - 如何将 html2canvas 图像保存到 jquery 中的系统文件夹中

转载 作者:太空狗 更新时间:2023-10-30 00:24:39 25 4
gpt4 key购买 nike

我在这个表单中有一个带有 id="form1"的表单我有一个图表。现在我正在使用 html2canvas 来获取这个 form1 的图像。这是我的代码..

<script type="text/javascript">

$(document).ready(function () {
$('#add_button').click(function () {
alert("hiii");
$('form1').html2canvas();
var queue = html2canvas.Parse();
var canvas = html2canvas.Renderer(queue, { elements: { length: 1} });
var img = canvas.toDataURL();
window.open(img);
alert("Hello");
});
});

</script>

<form id="form1" runat="server">
<div style="padding-left:150px">
<asp:Literal ID="FCLiteral1" runat="server"></asp:Literal>
</div>
<div style="padding-left:350px"><b>Demo</b></div>
</form>

<input type="submit" id="add_button" value="Take Screenshot Of Div" " />

所以我的问题是如何将此图像保存到我的系统硬盘中..请帮助我。

最佳答案

系统硬盘?没看懂,服务端还是客户端?

客户

如果想让用户自动下载图片,需要修改Data URI scheme

试试这个:

添加CSS

#myHideFrame {
position: absolute;
top: -9999px;
width: 1px;
height: 1px;
}

在Javascript中添加

var img = canvas.toDataURL();
var frame = document.getElementById("myHideFrame");
if(!frame) {
frame = document.createElement("iframe");
frame.id = "myHideFrame";
document.body.appendChild(frame);
}
frame.src = img.replace(/^data[:]image\/(png|jpg|jpeg)[;]/i, "data:application/octet-stream;");

不幸的是这个例子没有显示名字,为此你必须做这样的事情(用户需要点击链接):

var img = canvas.toDataURL();
var link = document.createElement("a");
link.download = "photo.png"; //Setup name file
link.href = img.replace(/^data[:]image\/(png|jpg|jpeg)[;]/i, "data:application/octet-stream;");
document.body.appendChild(link);

服务器

如果你想保存在服务器上,那么你需要使用Ajax,例如Jquery:

Javascript 文件:

var img = canvas.toDataURL().replace(/^data[:]image\/(png|jpg|jpeg)[;]base64,/i, "");
$.ajax({
"type": "POST",
"url": "upload.aspx/UploadImage",
"data": {
"imageData": img //Send to WebMethod
}
}).done(function(o) {
console.log(["Response:" , o]);
});

您的 upload.aspx.cs 文件需要:

...
[WebMethod()]
public static void UploadImage(string imageData)
{
string fileNameWitPath = "custom_name.png";
using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
byte[] data = Convert.FromBase64String(imageData);//convert from base64
bw.Write(data);
bw.Close();
}
}
}
...

查看详情:http://www.dotnetfunda.com/articles/show/1662/saving-html-5-canvas-as-image-on-the-server-using-aspnet

关于c# - 如何将 html2canvas 图像保存到 jquery 中的系统文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22907269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com