gpt4 book ai didi

javascript - html2canvas 保存为 jpeg 而无需在浏览器中打开

转载 作者:太空狗 更新时间:2023-10-29 16:01:41 25 4
gpt4 key购买 nike

我正在尝试创建一个截屏按钮,用于创建用户的 document.body 图像。

理想情况下,用户可以选择在本地将图像保存为 .jpeg

我即将使用 html2canvas 创建我需要的功能图书馆。

function screenGrabber() {
html2canvas([document.body], {
logging: true,
useCORS: true,
onrendered: function (canvas) {

img = canvas.toDataURL("image/jpg");

console.log(img.length);
console.log(img);

window.location.href=img; // it will save locally
}
});

}

为了验证这是否有效,我一直在新的浏览器窗口中打开 img 变量。图像没有完全呈现,我猜这是因为它的长度超过了 30,000 个字符。

onrendered 事件之后,我如何更好地为用户提供在本地保存 Canvas 的选项?

最佳答案

下载器功能使它更容易:

function download(strData, strFileName, strMimeType) {
var D = document,
A = arguments,
a = D.createElement("a"),
d = A[0],
n = A[1],
t = A[2] || "text/plain";

//build download link:
a.href = "data:" + strMimeType + "," + escape(strData);


if (window.MSBlobBuilder) {
var bb = new MSBlobBuilder();
bb.append(strData);
return navigator.msSaveBlob(bb, strFileName);
} /* end if(window.MSBlobBuilder) */



if ('download' in a) {
a.setAttribute("download", n);
a.innerHTML = "downloading...";
D.body.appendChild(a);
setTimeout(function() {
var e = D.createEvent("MouseEvents");
e.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
a.dispatchEvent(e);
D.body.removeChild(a);
}, 66);
return true;
} /* end if('download' in a) */
; //end if a[download]?

//do iframe dataURL download:
var f = D.createElement("iframe");
D.body.appendChild(f);
f.src = "data:" + (A[2] ? A[2] : "application/octet-stream") + (window.btoa ? ";base64" : "") + "," + (window.btoa ? window.btoa : escape)(strData);
setTimeout(function() {
D.body.removeChild(f);
}, 333);
return true;
} /* end download() */





function screenGrabber() {
html2canvas([document.body], {
logging: true,
useCORS: true,
onrendered: function (canvas) {

img = canvas.toDataURL("image/jpeg");

download(img, "modified.jpg", "image/jpeg");
}
});

}

关于javascript - html2canvas 保存为 jpeg 而无需在浏览器中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com