gm は、node.js に基づいた画像処理プラグインで、画像処理ツール GraphicsMagick (GM) および ImageMagick (IM) をカプセル化し、spawn を使用して呼び出すことができます。 gm プラグインはデフォルトではノードにインストールされていません。使用するには、「npm install gm -S」を実行してインストールする必要があります。
このチュートリアルの動作環境: Windows 7 システム、nodejs バージョン 16、DELL G3 コンピューター。
gm とは何ですか。nodejs
画像処理ツールのプラグイン - gm とは、GraphicsMagick (GM) と ImageMagick (IM) をカプセル化し、spawn を使用して呼び出されます。
GraphicsMagick (GM) または ImageMagick (IM) は、基本的に同じ機能を持つ 2 つの一般的に使用される画像処理ツールです。GM は IM の一部です。
Nodejs 画像処理ツール gm の
プレインストールソフトウェア
を使用して、GraphicsMagick または ImageMagick をインストールします
(gm プラグインがサポートする IM ソフトウェアは、imagemagickv7.0.X.XX バージョンです。ダウンロードした IM バージョンが 7.1.x の場合、gm現在、正式に提供されているバージョンは 7.1.x)、7.0.x のダウンロード アドレスは http://m.downcc.com/d/398765 です。
インストール中に、ImageMagick をインストールするときにピクチャ フレームの一部を選択する必要があります (gm プラグインは Convert コマンドを呼び出します)。
gm のインストール
npm install gm -S
ウォーターマークの追加
gm の使用は主にウォーターマークの追加に使用されます。nodejs に付属の画像モジュールでほとんどのニーズを満たすことができますが、ウォーターマークを追加できないため、次の方法では gm を使用してウォーターマークを追加します。
gmモジュールをロードする
const gm = require('gm').subClass({imageMagick: true})
テキストを追加する画像を指定
gm(./uploads/pic/test.jpg) //ウォーターマークを追加する画像を指定("white ") //外側のフォント color.fill("white") //内側のフォントの色 (設定されていない場合、デフォルトは黒) .drawText(50,50,"中国") .write(./uploads/pic/watermark.jpg, 関数 (err) { コンソールログ(エラー) if (!err) console.log('ok'); それ以外の場合は console.log(err); });
中国語 font を追加します。font
("./ttf/msyh.ttf",60) //フォントが配置されているフォルダーとフォント サイズ
gm(./uploads/pic/test.jpg) //追加する画像を指定しますtheウォーターマーク.ストローク("白") //外側のフォントの色.fill("白") //内側のフォントの色 (設定されていない場合、デフォルトは黒) .font("./ttf/msyh.ttf",60) //フォント ライブラリが配置されているフォルダーとフォント サイズ。drawText(50,50,"中文China") .write(./uploads/pic/watermark.jpg, 関数 (err) { コンソールログ(エラー) if (!err) console.log('ok'); それ以外の場合は console.log(err); });
ダウンロード モーメント モジュールに
日付ウォーターマークを追加します
npm install moment
ロード モジュール
const moment = require('moment');
call
var datetime = moment().format("YYYY-MM-DD HH:mm:ss"); gm(./uploads/pic/test.jpg) //追加する画像を指定するwatermark.stroke("white") //外側のフォントの色.fill("white") //内側のフォントの色 (そうでない場合はデフォルトは黒)セット) ) .font("./ttf/msyh.ttf",60) //フォント ライブラリが配置されているフォルダーとフォント サイズ.drawText(50,50,datetime) .write(./uploads/pic/watermark.jpg, 関数 (err) { コンソールログ(エラー) if (!err) console.log('ok'); それ以外の場合は console.log(err); });