Как сохранить изображение, нарисованное на холсте в Electron.js - PullRequest
0 голосов
/ 07 октября 2018

мой код для сохранения изображения:

var fs = require('fs');
const dialog = require('electron').remote.dialog;
var canvasBuffer = require('electron-canvas-to-buffer');

dialog.showSaveDialog({title:'Testing a save dialog',defaultPath:'image.jpg'},saveCallback);

function saveCallback(filePath) {
  // as a buffer
  var buffer = canvasBuffer(canvas, 'image/png')
  // write canvas to file
  fs.writeFile('image.png', buffer, function (err) {
    throw err
  })
}

Я не могу сохранить изображение, нарисованное на холсте

, в окне ошибки отображается

img.toPNG не является функцией

ошибка.

1 Ответ

0 голосов
/ 08 октября 2018

Я предполагаю, что ваш canvas правильный и уже нарисован.Так что вам не нужен холст в буфер.Попробуйте этот подход.(Я использовал jpg, но png тоже работает)

function saveCallback(filePath) {
    // Get the DataUrl from the Canvas
    const url = canvas.toDataURL('image/jpg', 0.8);

    // remove Base64 stuff from the Image
    const base64Data = url.replace(/^data:image\/png;base64,/, "");
    fs.writeFile('image.jpg', base64Data, 'base64', function (err) {
        console.log(err);
    });
}
...