2
我能够保存图像文件在服务器,但图像保存为空白图像在画布上绘制的图像不保存,但如果我画矩形,然后图像是节省精plz帮助whts在我的代码的问题...在画布上保存绘制的图像在服务器在asp.net
脚本代码:
$(document).ready(function() {
var myCanvas = document.getElementById("Canvas1");
var myContext = myCanvas.getContext("2d");
var myImg = new Image();
myImg.src = "images/cabinbg.jpg";
myImg.onload = function() { myContext.drawImage(myImg, 0, 0); };
var dataURL = document.getElementById("Canvas1").toDataURL("image/png");
$('#<%=btnAdd.ClientID %>').live('click', function() {
dataURL = dataURL.replace('data:image/png;base64,', '');
$.ajax({
type: "POST",
url: "LayoutMaster.aspx/GetImage",
data: "{ 'image':'" + dataURL + "'}",
contentType: 'application/json; charset=utf-8',
dataType: 'json'
}).done(function (respond) {
//alert(respond);
});
});
CS文件
[System.Web.Services.WebMethod()]
public static void GetImage(string image)
{
if (image != "")
{
try
{
FileStream fs;
byte[] photo = Convert.FromBase64String(image);
fs = new FileStream(HostingEnvironment.MapPath("~/images/abc.png"), FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter br = new BinaryWriter(fs);
br.Write(photo);
br.Flush();
br.Close();
fs.Close();
}
catch (Exception e)
{
e.Message.ToString();
}
}
}
我可能是错误的,但我同意我不等待onload函数,但仍然我的图像显示propery在我的画布,现在这里出现问题,当我上传画布的内容我变得不完整数据。我搜索了更多关于这个,我得到了几个结论,得出的结论是,我上传了2MB的数据,这是更多的数据网址处理。我仍然陷入这个问题。 – 2013-05-10 18:32:29
图像最终将显示为当加载图像被绘制到te canvas时。问题在于,当前画布的内容是在有或没有图像的情况下提取的(取决于在调用toDataURL之前图像是否足够快地绘制到画布上,这是可疑的)。可能是尺寸问题。尝试将画布提取为JPEG,以查看是否有助于传输大小。如果这有所作为,那么你就会知道。 – K3N 2013-05-10 19:01:28
我已经尝试使用图像/ jpeg,但我面临同样的问题 – 2013-05-12 13:39:51