서버에 이미지 파일을 저장할 수 있지만 이미지가 비어있는 이미지로 저장됩니다. 캔버스에 그려진 이미지는 저장되지 않지만 사각형을 그릴 경우 원이 그려집니다. ... whts 내 코드에서 문제를 도와 PLZ 잘 저장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 함수를 기다리지 않고 있지만 내 이미지가 내 캔버스에 제대로 표시되고 있다는 것에 동의한다. 캔버스의 내용을 업로드 할 때 불완전해진다. 데이터. 나는 이것에 관해 더 많이 조사했고, 나는 2MB의 데이터를 업로드하고 있다고 결론을 내린 몇 가지 결과를 얻었다. 나는 아직도이 문제에 갇혀있다. –
이미지가로드되면 이미지가 테 캔버스에 그려지는 것처럼 결국 이미지가 표시됩니다. 문제는 현재 캔버스의 내용이 이미지의 유무에 관계없이 추출된다는 것입니다 (toDataURL이 호출되기 전에 이미지가 캔버스에 충분히 빨리 그려지는지 여부에 따라 의심 스럽습니다). 크기 문제 일 수 있습니다. 캔버스를 JPEG 대신 추출하여 크기를 전송하는 데 도움이되는지 확인하십시오. 그것이 차이를 만든다면 알게 될 것입니다. – K3N
나는 image/jpeg를 사용해 보았지만 같은 문제에 직면 해있다 –