divのScreenShotを取得し、それをサーバー(Java)に送信して保存する必要があります。私の会社プロジェクトの既存のコードは、Html2Canvas.jsを使用して要素を取得していますdiv、body ...)、base64 dataURIを返すとうまくいきますが、Chromeでアプリケーションをフリーズしています。だから私はいくつかの他のソリューションを探していて、スタックのオーバーフローから以下のコードを発見した。ここでBlobまたはBlobURLからdataURLを取得する方法
var data = '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">' +
'<foreignObject width="100%" height="100%">' +
'<div xmlns="http://www.w3.org/1999/xhtml" style="height:200px;width:200px;background-color:red;font-size:40px">' +
'<em></em> l ' +
'<span style="color:white; text-shadow:0 0 2px blue;">' +
'</span>' +
'</div>' +
'</foreignObject>' +
'</svg>';
var DOMURL = window.URL || window.webkitURL || window;
var svg = new Blob([data], {type: 'image/svg+xml;charset=utf-8'});
var url = DOMURL.createObjectURL(svg);
document.getElementById("image1").src=url;
<img id='image1' width="200px" height="200px"/>
私は取得していますURLは、BLOB-URLです:私はできる午前(ブロブのhttps%3A // fiddle.jshell.net/a5b366a2-ff0c-4c7b-9b20-a80395d7f536) img srcとして使用するか、または新しいタブでそのURLを直接開くこともできます。 このBLOB URLまたはBlobオブジェクトから、base64 dataUriをこのように取得する方法はありますか(data:image/png; base64、R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7 //// wAAAAA)
オブジェクトURLを使用しない場合は作成しないでください。これはメモリの悪夢です。また、Blobを使用するOP全体のアイデアは、svgのための悪い考えです。 – Kaiido
あなたはあなたの両方のステートメントに合っています。最初はちょっと間違いだった - 私はそれを忘れてしまった。第二の:ちょうど質問に答える。あなたは彼がこのような素敵な答えでより良く知っているように親切です:) – thepio