キャンバスを Web ページからファイルに保存しようとしています。キャンバスはかなり複雑で、いくつかの画像 (いくつかの半透明の .png ファイル、2 つの svg 要素、および 4 つの他のキャンバス) から構築されており、どのように保存しようとしても、canvas.toDataURL()
メソッドまたはdomtoimage [ライブラリ]を使用しています。 ( https://github.com/tsayen/dom-to-image ) またはcanvas2imageまたはfileSaverまたはcanvasToBlobライブラリ - 結果は同じです: svg (および<image>
内部の要素) パーツのない画像。そのため、キャンバスから構築されたパーツのみを取得しています。「汚染された」キャンバスについて読みましたが、画像ホスト サーバーは Web ページと同じです。
さらに、RCMをクリックして「名前を付けて画像を保存」機能を選択してキャンバスを保存すると、必要なもの、つまり全体像が保存されるため、混乱します。
コード全体が巨大で、保存オプションが異なるため、ここでは保存オプションを 1 つだけ示します。
domtoimage.toBlob(canvasElement)
.then(function (blob) {
console.log(blob);
window.saveAs(blob, 'my-node.png');
});
左側の画像は、ブラウザで「画像を保存」機能を使用したときに得られるもので、右側はtoBlobを介して js によって保存された画像です。
画像全体を自動的に保存する方法について何か提案をいただければ幸いです :)