2012-11-02 19 views
5

websocketを通じてbase64でエンコードされた画像を受け取るnodejsサーバーがあります。私はそれらの画像でいくつかの画像操作をして戻したいと思います。私はこれを行うのを助けるためにいくつかの図書館を見つけるためにネットを少し調べましたが、私が見つけることができるのは、サーバー側のどこかに画像を保存し、その画像を操作して保存するライブラリでした。どうやらそれらのすべては、画像のファイル名を含む文字列を入力として受け取るので、ファイルストリームを通して手動で画像を取得していると思います。Base64の画像データを持つNodeJSでの画像操作

私の質問は、Base64データに直接作業する(つまり、データを関数の入力として渡す)ことができるライブラリがあるかどうかです。また、イメージをサーバーに保存し、変更して送信する必要がありますそれ?私はいくつかの高性能アプリケーションに取り組んでいるので、後者を使用しないでください。この保存/読み込みはすべてサイクルの無駄に見えます。そうでなければ、私はこれを達成することができる他の方法を見ていますか(つまり、保存せずに画像ファイルを取得して戻すなど)

ありがとうございました。

答えて

2

Bufferで作業してください。この1つは、「読めるストリーム」で作業することができ

var img = new Buffer(img_string, 'base64'); 
// Work with your images like other tutorials do. 
+0

これはうまくいきません。ライブラリはファイル名が関数の入力と見なされるため、ファイルストリームを開いて手動でイメージを取得しようとしているようです。私はこれを試してみましょう。ありがとう! – Masiar

+0

@Masiarライブラリはバッファローと一緒に作業する必要があります。バッファとしてファイルを開くにはファイルパスが必要かもしれませんが、すべてバッファーになります:-) –

+0

私は間違いなく同意します:)!しかしAPIは、どのようなインプットが期待されているかについてはっきりしています。私は、入力ソースがバッファーでもある場合は、すぐに試してみるつもりです。それが事実なら、あなたは私の一日を作った。そうでなければ素敵な試み。私はできるだけ早くあなたに知らせるでしょう。 – Masiar

0

https://github.com/aheckmann/gm

は、readmeの例の第2のセットを参照してください。

+0

見栄えが良いです。 @FlorianのようにBufferで変換することができましたが、唯一のフォーマットはReadableStreamです。 – Masiar