Bild in Dropbox mit Daten von Canvas speichern

Ich versuche, Canvas-Daten als Bild (PNG) in meine Dropbox zu schreiben. Ich schaffe es, die Daten von der Leinwand zu bekommen und eine Datei in der Dropbox zu speichern, aber die Datei ist keine Bilddatei, die sie zusammenfügt.

Entsprechend der Dokumentation sollten die Bilddaten in einen ArrayBuffer konvertiert werden. Dass ich eine Funktion verwende, die hier auf Stackoverflow zu finden ist, aber etwas scheint nicht zu funktionieren. Weiß jemand, was ich falsch mache?

function _str2ab(str) {
    var buf = new ArrayBuffer(str.length*2); // 2 bytes for each char
    var bufView = new Uint16Array(buf);
    for (var i=0, strLen=str.length; i<strLen; i++) {
        bufView[i] = str.charCodeAt(i);
    }
    return buf;
}

function _savePicture () {

    //Get data from canvas
    var imageSringData = canvas.toDataURL('image/png');
    //Convert it to an arraybuffer
    var imageData = _str2ab(imageSringData);

    client.writeFile('/Public/the_image.png', imageData, function(error, stat) {
    if (error) {
        console.log('Error: ' + error);
    } else {
        console.log('File written successfully!');
    }
});

Hier ist eine Dropbox-Dokumentation.https: //github.com/dropbox/dropbox-js/blob/stable/guides/snippets.m

Antworten auf die Frage(2)

Ihre Antwort auf die Frage