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