Nodejs画像を処理するにはどうすればよいですか?次の記事では、Nodejs が gm と imageMagick を使用して画像を処理する方法を紹介します。
#最近、JS を使って楽しいことをしていて、画像を加工する必要があります。インターネット上にはさまざまな方法を記載したチュートリアルが多数あり、一部の方法が必ずしも機能するとは限りません。この記事では、NodeJS を使用して画像を処理するために著者が検証した方法を紹介します。
npm i gm
gm は、開発者が画像を処理できるようにいくつかの JS API を提供する Node ライブラリです。ただし、その下にある GraphicsMagick または ImageMagick に依存しています。実際、gm はこれら 2 つのツールを呼び出すためのコマンド ラインです。
つまり、gm のインストールに加えて、GraphicsMagick または ImageMagick のいずれかをインストールする必要もあります。
ImageMagick
著者は MacOS を使用しており、ImageMagick を直接インストールすることを選択しました。
公式 Web サイトのコマンドに従います。必要なコードは 1 行のみです (Mac に brew がインストールされている場合):
brew install imagemagick --with-webp
パラメータを導入します --with-webp
, 削除しても大丈夫ですが、webp形式の画像を加工したい場合は追加する必要があります。
環境変数を気にする必要がなく、brew を使用すると便利です。
GraphicsMagick
もちろん、ImageMagick を使用しない場合は、GraphicsMagick を使用できます:
brew install graphicsmagick
最初に ImageMagick をインストールすることを選択しましたが、これを書いたとき、常にエラーが発生しました:
const gm = require('gm'); gm('图片文件路径').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('输出文件路径', function (err) { if (err) { return console.log(err); } else { console.log('success'); } });
ImageMagick を使用したい場合、上記の記述は実際にはImageMagick
ツールを使用することを指定してください:
const g = require('gm'); const gm = g.subClass({imageMagick: true}); gm('图片文件路径').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('输出文件路径', function (err) { if (err) { return console.log(err); } else { console.log('success'); } });
共通の機能を記録してくださいみんなのメモ用の gm の関数:
注: gm はチェーンで呼び出すことができ、書くのがとても楽しいです。gm(ファイル名) から画像ファイルを読み取り、レイヤーごとに処理し、最後に file.write(filename, callback) に書き込みます。
#画像をズーム
.resize(幅, 高さ)
画像をトリミングします
.crop(width, height, x, y)
画像を回転しますpic
.rotate(color, deg)
nodejs チュートリアル を参照してください。
以上がNodejs が gm と imageMagick を使用して画像を処理する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。