Как использовать html2canvas в asp. net mvc? - PullRequest
0 голосов
/ 13 июля 2020

Я хочу сделать снимок экрана с тегом 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();
         }
...