我有多個畫布,這些畫布用作圖層。
canvas c1 = background image. canvas c2 = charactor image. canvas c3 = item image.
我的原始碼如下。
在同一位置設定三個畫布。
<div canvas="canvas-wrap"> <canvas class="canvas" id="c1"> <canvas class="canvas" id="c2"> <canvas class="canvas" id="c3"> </div> .canvas-wrap{ width: 600px; height:500px; max-width: 100%; position: relative; padding: 0; box-sizing: content-box; } .canvas{ position: absolute; left:0; top:0; border: 0; max-width:100%; box-sizing: content-box; padding: 0; margin: 0; }
現在,我想將這些畫布匯出為一張 jpg。
我有可以匯出一張畫布的原始碼,但我想從三張畫布中匯出一張jpg。
function saveCanvas(canvas_id) { var canvas = document.getElementById("c1"); var a = document.createElement('a'); a.href = canvas.toDataURL('image/jpeg', 0.85); a.download = 'download.jpg'; a.click(); }
這是可能的,但更好的方法是使用 1 個畫布並將所有內容繪製到那裡。
在這裡,我們創建一個虛擬畫布,循環遍歷所有畫布以將資料繪製到其上,然後保存該畫布生成的圖像。