問題タブ [gm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
440 参照

node.js - gm のメソッド「toBuffer」が約束されないのはなぜですか?

gmを使用して、大きなアバター画像のサイズを 64 * 64 に変更
しようとしました。express 関数は非同期関数であり、次のコードですべてのメソッドを約束しようとしました。


しかし、API はまったく応答しません。
そのため、行にブレークポイントを設定すると、thumbFile に 'goBufferAsync' メソッドがないことがわかります。「gm」のすべてのメソッドを約束する方法を知っている人はいますか?

0 投票する
1 に答える
1215 参照

node.js - 非常に遅いgmでアニメーションGIFにテキストをオーバーレイする

このコードを使用して Node.js を呼び出しgm、アニメーション GIF にテキストをオーバーレイします。

正常に動作しますが、少し遅いです。私はもっ​​とうまくやれると思います(少なくとも私は望んでいます)。

さて、それは本当に次のように翻訳されます(私はスパイしましたgm):

この処理には約 30 秒かかります。

私はいくつかのことを試しました:

  • 追加-colors 128すると約 7 秒短縮されます (ただし、元の .gif が 256 色の場合、品質がいくらか失われます)。
  • -coalesce30 秒にさらに 20 秒追加します。

テキストはすべてのフレームにオーバーレイされます。これが最終製品です (私がテストしている .gif ではなく、単なるサンプルです):

マネーバーン

質問1

より多くのコンピューティングを投入する以外に、これを高速化するためにできることはありますか? 私は画質を下げることにオープンです..しかし、あなたが知っている..賢明に。

質問2

フロントエンドで進行状況インジケーターを取得するにはどうすればよいですか? 残りのデータ/時間のおおよそのアイデアを持つイベントをリッスンできますか? 例は素晴らしいでしょう。

入力GIFの下部にある数ピクセルを変更するだけなので、入力GIFと結果のGIFのライブファイルサイズは、残り時間のかなり良い指標ですが、より良いアプローチがあるかどうか疑問に思っています.

編集:

これは私がテストしているGIFです:
https://m.popkey.co/bca7ab/ygQJw.gif

0 投票する
0 に答える
228 参照

node.js - NodeJs - graphicsMagic は空の画像を書き込みます

gm ライブラリを使用して画像のサイズを変更していますが、空の画像が作成されます。結果を書き込むにはさまざまな方法を使用しますが、毎回空の画​​像を取得します。

私もこの方法を使用していますが、結果は同じでした。

そして、このようにも:

この方法では、毎回空のオブジェクト({})をエラーとして返します!

0 投票する
0 に答える
807 参照

javascript - gm ライブラリの反応/webpack の問題

ノードからこのパッケージ gm を使用しようとしていますが、上部に fs が必要です。エラーが発生していましたが、この構成を webpack.config ファイルに追加して修正しました。

これを追加すると、新しい警告が表示されます。

Module not found: Error: Cannot resolve module 'spawn-sync' inおよびディレクトリ パス。

そして、このライブラリのクロップ機能を使用すると、使用TypeError: cp.spawn is not a functionするコードは次のようになります。

今、私はこれをreactで使用しており、electronで実行しています。コードに何か問題がありますか? またはそれを機能させるためにできることはありますか?

私がやろうとしているのは、開始点とトリミングしたい場所を示す写真をトリミングすることだけです。

0 投票する
1 に答える
172 参照

node.js - 画像の処理中に Nodejs bluebird promise が失敗する

*すべてが正しく行われたようで、破損した 4 つのイメージ ファイルが作成され、後でエラーが発生しましたが、リクエストは正常に処理されました。私の画像処理のコンソール出力は次のとおりです。

POST /api/upload/image/ 200 51.790 ミリ秒 - 241 「解像度 120x120 のイメージの作成中にエラーが発生しました。」「解像度 48x48 の画像の作成中にエラーが発生しました。」「解像度 300x200 の画像の作成中にエラーが発生しました。」*