LoginSignup
6
6

More than 5 years have passed since last update.

画像のサムネイルを生成する [Node, GraphicsMagick]

Posted at

今回作るサムネイルのサイズ

490x350とします。長辺が短辺の1.4倍です。うちのデジタル一眼で撮った写真サイズは5184x3456(長辺が短辺の1.5倍)なので、単純にリサイズするだけでなく、端の余分な部分をカットする必要があります。

内接リサイズ/外接リサイズ

元画像が横長かつ横の長さが縦の長さの1.4倍以上のときは外接リサイズすることとし、それ以外の場合は内接リサイズすることとします。

外接リサイズ、内接リサイズの違いは以下を参照

コード

nodejsのnpmモジュールであるgmを使います。

var gm = require('gm').subClass({imageMagick: true});
var args = process.argv;
gm(args[2])
  .resize(null, '350')
  .borderColor('black')
  .border('245', '245')
  .gravity('Center')
  .crop('490', '350')
  .write('./out.png', function (err) {
    if (!err) console.log(' hooray! ');
  });

結果

  • 元画像

org.jpg

  • サムネイル

out.png

  • 元画像 IMG_7489.jpg

  • サムネイル

out.png

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6