Доброго времени суток)
Моя задача отправить скрин элемента на другую страницу или на почту. Использую для этого html2canvas. Скрин сделать получилось, даже вставить его на эту же страницу. Но как отправить его куда то дальше не могу разобраться. Пытался через localStorage, но не вышло. Какие идеи есть?
html2canvas(document.getElementById("auto")).then(function(canvas) {
canvas.toDataURL();
document.getElementById("screen").appendChild(my_screen);`
Воспользуйтесь упаковкой бинарных данных, которые Вы получаете методом toDataURL, в base64 и обратно при помощи встроенных в API браузера методов btoa() И atob().
То что вы раскодируете - просто подставьте в атрибут src тега img
let c = canvas.getContext('2d');
for(var i=0; i<10; i++) {
c.fillStyle = `hsl(${Math.random()*360},55%,55%)`;
c.fillRect(Math.random()*150, Math.random()*100, 50, 50);
}
function canvas2img() {
let str = btoa(canvas.toDataURL('png'));
console.log('str', str);
img.setAttribute('src', atob(str));
}
canvas, img {border:solid}
<canvas id="canvas" width=200 ></canvas>
<button onclick="canvas2img()" >canvas2img</button>
<img id="img">
Сборка персонального компьютера от Artline: умный выбор для современных пользователей