Node.jsを使用してウェブサイトを作成しています。 imagemagickなどの上に便乗していると言及されている多くのライブラリーを見てきました。ここにリストがあります: https://github.com/ry/node/wiki/modules#graphics
私がやろうとしていることは、ユーザーがアップロードした画像を取得し、サイトが必要とする特定のサイズにトリミング/サイズ変更することです。これを行うのに最適/最もアクティブなスクリプトは何ですか? npmをサポートしたいのですが。これらのいくつかを実際に使用した経験のある人はいますか?
これをかなりうまく処理できるきちんとしたimagemagickラッパーを見つけたと思います。ファイルをディスクに書き込む前のメモリ内でも。 (別名ユーザーアップロード->ノードimagemagick lib-> cdn、ディスクに触れないでください...これは私が望んでいることです)
CanvasとImageMagickのどちらかを決定しようとしている人のために、比較のために両方を試したところ、imagemagickからはるかに優れた結果が得られました。これは、1024x768から128x128にサイズ変更およびトリミングされた画像です。
画像に描画したり効果を加えたりする必要がある場合は、キャンバスまたはImageMagickが必要になるかもしれませんが、速度とメモリ使用量の点で、いくつかの優れたオプションがあります。
以下は、いくつかの異なる画像ライブラリのベンチマークです。
https://github.com/libvips/libvips/wiki/Speed-and-memory-use
ImageMagickは低速で、大量のメモリを消費します。
シャープライブラリ で使用されるVipsを試してください。
LearnBoostの人からのノードキャンバスを使用しました- https://github.com/learnboost/node-canvas またはnpm install canvas
-彼らは問題に非常に敏感であり、ライブラリはよく書かれていて安定しています。メモリからイメージを作成できるとはまだ思っていませんが、node-imagemagickが機能しない場合は、試してみる価値があります。
ブラウザー側のキャンバスAPIに慣れている場合は、ファイルから画像を作成し、それを小さなキャンバスに描画するのは簡単です。ここにその例があります:
https://github.com/LearnBoost/node-canvas/blob/master/examples/resize.js
C++に精通している場合は、ネイティブオブジェクトにメソッドを追加するのはかなり簡単です。このプロジェクトは、Mac OSで初めてきれいにビルドされました。 node-canvasを強化するグラフィックライブラリであるcairoのドキュメントも非常に明確です。 Imageオブジェクトのロード関数を見て、Nodeバッファーからロードする方法があるかどうかを確認します。
https://github.com/LearnBoost/node-canvas/blob/master/src/Image.h
https://github.com/LearnBoost/node-canvas/blob/master/src/Image.cc
幸運を!