簡體   English   中英

在 Electron 上將畫布另存為圖像

[英]Save a canvas as an image on Electron

我目前的設置:

  1. 將畫布轉換為 blob。
  2. 向用戶詢問文件路徑。
  3. 將 blob 保存在用戶指定的位置。

但是,我無法使第 3 步起作用。 我目前正在嘗試使用 fs 來完成這項工作,但它似乎並沒有真正保存文件。

當前代碼:

canvas.toBlob(blob => {
    remote.dialog.showSaveDialog({ defaultPath: "file.png" }).then((canceled, filepath) => {
        if (filepath) { // Using filepath because canceled is always true for some reason
            blob.arrayBuffer().then(arrayBuffer => {
                console.log(arrayBuffer);
                fs.writeFile(filepath, Buffer.from(arrayBuffer), err => {
                    if (err) throw err;
                });
            });
        }
    });
}, "image/png");

我的代碼有什么缺陷嗎? 我嘗試將緩沖區更改為 Uint8Array 和 Int8Array,但它們也不起作用。

我通過將取消/文件路徑參數更改為一個包含所有這些參數的結果參數解決了這個問題,結果我只是以錯誤的方式使用 showSaveDialog 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM