2016-03-25 4 views
3

ArrayBuffersのチャンクから画像ファイルを作成しようとしています。 picarrayはArrayBufferチャンクが含まれていNodejsのArrayBufferから画像を作成する

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

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

all.end(); 

。しかし、私はエラー
TypeError: Invalid non-string/buffer chunkを取得します。

ArrayBufferチャンクをイメージに変換するにはどうすればよいですか?

+0

の可能性のある重複[JSでArrayBufferからファイルを書き込む方法](http://stackoverflow.com/questions/31581254/how-to-write-a-file-from-an-arraybuffer- in-js) – Petr

答えて

3

最初にnode.js.Bufferに変換してみましたか? (ネイティブのnode.js Bufferインターフェイスですが、ArrayBufferはブラウザのインターフェイスであり、node.jsの書き込み操作では完全にサポートされていません)。この線に沿って

何かが役立つはずです:

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

私はこれを得たいくつかの時間を過ごした後、それは完全に私のために働きました。

@Nickで述べたように、あなたが受信したバッファ配列をnodejsバッファに変換する必要があります。

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") 
      } 
     }); 
    }); 
}; 
関連する問題