Я хочу сделать снимок экрана с тегом HTML div, когда веб-приложение работает на стороне клиента, и сохранить изображение на сервере. Я прочитал много статей о html2canvas и попытался реализовать код, однако изображение, которое сохраняется на сервере, становится полностью черным. Я попытался установить цвет фона на белый, но потом он стал полностью белым. Короче изображение пустое. Так что любая помощь будет оценена по достоинству. Спасибо.
Html
<div id="viewer-container" class="sticky-top" style="height:70%;top:25%;width:41%;left:38%;">
<canvas id="viewer-canvas"></canvas>
</div>
Js
html2canvas(document.getElementById("viewer-container"), {
onrendered: function (canvas) {
var image = canvas.toDataURL("image/png");
image = image.replace('data:image/png;base64,', '');
$.ajax({
type: "POST",
url: '@Url.Action("TakeImage", "Home")',
data: { base64data: image },
success: function (result) { alert(result); }
});
}
})
Контроллер
[HttpPost]
public ActionResult TakeImage()
{
if (Request.Form["base64data"] != null)
{
string image = Request.Form["base64data"].ToString();
byte[] data = Convert.FromBase64String(image);
var path = Path.Combine(Server.MapPath("~/BIM"), "testimage.png");
System.IO.File.WriteAllBytes(path, data);
}
return View();
}