2016-08-04 17 views
1

画像データのチャンクを画像に変換したい。しかし、私は成功するように見えることはできません。これは、変換したいチャンクのタイプです。画像/ JPEG のContent-Length: コンテンツタイプを--ThisString画像にノードを書き込むノード

JFIF(#(## - +(0 } 1AQa「Q2! #1 BR $の3BR
%&「()* 456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
w! 1AQaq "2 B #3R br $4 % & '()56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?A6 uM t ! # Q < | [ U]^= M G-ƴ z & R8 پ S + i C l )6 、 *a J} JM=W N9 4 T 3 Rb #0E、 & L NECワットշdJWd :(˸| Z_8(G \ caB7MPq、!? O3Nò H =E8 T u pdf H 3 jK ] W8 3QK v Q ֬ ! AYKv :T:ŎTRŎ y-]Q ....

どうすればこのデータをJPEG画像に保存できますか?

答えて

1

問題は、バイナリデータをエンコードしてJavaScript文字列に格納することです。バッファーの下にあるhttp://nodejs.org/api.htmlには、これに関するかなり良いセクションがあります。

これを修正する最も簡単な方法は、リクエストnpmを変更することでした。 /path/to/lib/node/.npm/request/active/package/lib/main.jsのvar buffer;の直下の行66にresponse.setEncoding('binary');を追加する必要がありました。これはこのリクエストではうまく動作しますが、他のリクエストではうまく動作しませこれをハックすると、これは他の渡されたオプションに基づいてのみ設定されます。

私はその後

var buf = new Buffer(body, 'binary');

var buf = new Buffer(body)

を変更しました。

この後、すべて正常に機能しました。

これを行うもう一つの方法は、本当にリクエストnpmに触れたくないのであれば、requestBodyStream引数にWritable Streamを実装しているオブジェクトを渡すことです。このオブジェクトはそれから、それ自身のバッファーに応答からのストリーミングされたデータを格納します。多分これを行うライブラリがあります...私は確信していません。

私はここでそれをここに残しておきますが、何かを明確にしたいと思ったらコメントしてください。

+0

はい、2番目のオプションで明確にしてください。ミニの例が分かるでしょう。ありがとうございました。 – Jones

関連する問題