環境
- Nodejs 12
やりたいこと
nodejsで画像加工をしたい。でもってやはり有名なのはImageMagick
早速一番それっぽいのを見つけたものの最終更新が8年前ww
rsms/node-imagemagick: Imagemagick module for NodeJS — NEW MAINTAINER: @yourdeveloper
This is an abandoned version. Please see @yourdeveloper/node-imagemagick for the currently maintained version
なるほど、メンテナンスは終わったけど誰かがフォークしてくれてるのね、と思って見に行くとこちらも閉店
yourdeveloper/node-imagemagick: Imagemagick module for NodeJS —
Note: This code has been unmaintained for a long time. Please consider using the gm module instead.
結局そのリンク先のaheckmann/gmも3年以上メンテされてないんだよな。。
でnpmでググった結果いいライブラリ見つけたのでメモ
martinj/node-imagickal: node wrapper for ImageMagick commands
インストール
先にImageMagickがインストールされている必要がある
yarn add imagickal
サンプル
とりあえず画像の解像度だけ取得するパターン
const im = require('imagickal'); im.dimensions('yusa_emi.jpg').then(function (dim) { console.log(dim.width); console.log(dim.height); });
async / await で書くこともできる
async function run() { const dim = await im.dimensions('yusa_emi.jpg'); console.log(dim.width); console.log(dim.height); } run();
リサイズ
im.commands() .resize({ width: 100 }) .quality(90) .strip() .exec('yusa_emi.jpg', 'result.jpg').then(function () { console.log('done'); });
他にも公式サイトに例がたくさん載ってるのでそっちをみよう