ホームページ > ウェブフロントエンド > jsチュートリアル > Nodejs が gm と imageMagick を使用して画像を処理する方法について話しましょう

Nodejs が gm と imageMagick を使用して画像を処理する方法について話しましょう

青灯夜游
リリース: 2022-08-15 19:42:38
転載
2856 人が閲覧しました

Nodejs画像を処理するにはどうすればよいですか?次の記事では、Nodejs が gm と imageMagick を使用して画像を処理する方法を紹介します。

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
ログイン後にコピー

Quoting gm

最初に 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)

color は背景色です (背景色は回転角度が deg の場合に便利です) 90 の倍数ではなく、「#ededed」という形式を使用してください)

ノード関連の知識の詳細については、

nodejs チュートリアル を参照してください。

以上がNodejs が gm と imageMagick を使用して画像を処理する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート