[解決済み] Node.JSでサーバーサイドの画像処理を行うにはどのライブラリを使用すればよいですか?[クローズド]
2022-09-02 08:02:54
質問
私は、かなり 利用可能なライブラリの大きなリスト しかし、これらのうちどれがより成熟しており、より良いパフォーマンスを提供するかはわかりません。基本的に、私は次のことをしたいです。
- 外部ソースからサーバーにいくつかの画像をロードする
- それらを一つの大きなキャンバスに配置する
- 切り抜きとマスク
- フィルタを適用する
- 最終的な画像のサイズを変更し、それへのリンクを与える
nodeパッケージがLinuxとWindowsの両方で動作するのは大きなプラスです。 と Windows .
どのように解決するのですか?
自分自身の質問に答える
Node.jsのグラフィックライブラリを2日間かけて掘り下げました。
-
にはかなり慣れているので、まず試してみました。
<canvas>
API を使っています。ライブラリとして大きなプラスになりますね。 - は Cairo を必要とし、それは簡単な Windows ダウンロードを持っていません。GTK+ のディストリビューションで見つけたけど。
- さらに、モジュールのインストール時にネイティブライブラリのバインディングコードをコンパイルする必要があります。これは、まだ Windows に移植されていない Node-Waf を使用します。
- 成熟
- Windows でスムーズに動作する
- ドキュメントは ok しかし、完全ではありません。どのAPIが利用可能かを把握するために、ソースコードを調べなければなりませんでした。
- 残念ながら、gmで画像を結合する簡単な方法はありません。多分、それを実現する方法があるのでしょうが、2時間費やしても見つかりませんでした。
-
公式レポではImageMagickの基本的なコマンドはほとんど網羅されていませんが、私が使ったのは
このフォーク
を使いました (NPM は git リポジトリから直接ライブラリを引っ張ってこれるのが良いところです)。このフォークには
montage
これはまさに私が必要としているものです。 - ImageMagickはかなり遅いです Windows で動作しますが。
- 巨大なプラス:それは信じられないほどの VIPS ライブラリ を使用しています。VIPS は非常に高速で、大きな画像用に最適化されています。マシンに大量の RAM がある場合はすべての処理をメモリ内で行いますが、メモリが不足していたり他のアプリケーションに必要な場合はハードドライブのキャッシュに切り替えます。
- node-canvas と同様に Node-Waf を必要とするため、Windows ではまだ使用できません。
リストの他のライブラリも見てみましたが、それらのほとんどは非常に未熟であるか、私のユースケースに合っていません。Node-Waf が Windows に移植されたら、Node-Canvas か Node-Vips に移行したいと思いますが、それまでは node-imagemagick に固執するつもりです。
関連
-
[解決済み] ES6インポートで中括弧を使用するのはどのような場合ですか?
-
[解決済み] JavaScriptで次の要素/前の要素を取得しますか?
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] 文字列とラベルのローカライズとグローバリゼーションのベストプラクティス【終了しました
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] querySelectorAllがない場合、ライブラリを使用せずに属性で要素を取得する?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JSのDateからDay名
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] JavaScriptとLuaの微妙な違い [終了しました]
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)