2016-03-25 4 views
3

Ich versuche, eine Bilddatei aus Brocken von ArrayBuffers zu erstellen.Bild von ArrayBuffer in Nodejs erstellen

all= fs.createWriteStream("out."+imgtype); 

for(i=0; i<end; i++){ 
    all.write(picarray[i]); 
} 

all.end(); 

wo picarray Arraybuffer Stücke enthält. Ich bekomme jedoch den Fehler
TypeError: Invalid non-string/buffer chunk.

Wie kann ich ArrayBuffer Chunks in ein Bild konvertieren?

+0

Mögliches Duplikat [Wie eine Datei von einem Arraybuffer in JS schreiben] (http://stackoverflow.com/questions/31581254/how-to-write-a-file-from-an-arraybuffer- in-js) – Petr

Antwort

3

Haben Sie versucht, es zuerst in eine node.js.Buffer umzuwandeln? (Dies ist die native node.js Buffer Schnittstelle, während ArrayBuffer die Schnittstelle für den Browser ist und nicht vollständig für node.js Schreiboperationen unterstützt wird).

Etwas entlang der Linie sollte helfen:

all= fs.createWriteStream("out."+imgtype); 

for(i=0; i<end; i++){ 
    var buffer = new Buffer(new Uint8Array(picarray[i])); 
    all.write(buffer); 
} 
all.end(); 
1

einiger Zeit habe ich diese bekam, nachdem er, es perfekt für mich gearbeitet.

Wie von @Nick erwähnt, müssen Sie das Pufferarray, das Sie vom Browser erhalten haben, in nodejs Buffer konvertieren.

var readWriteFile = function (req) { 
    var fs = require('fs'); 
     var data = new Buffer(req); 
     fs.writeFile('fileName.png', data, 'binary', function (err) { 
      if (err) { 
       console.log("There was an error writing the image") 
      } 
      else { 
       console.log("The sheel file was written") 
      } 
     }); 
    }); 
};