今回作るサムネイルのサイズ
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! ');
});
結果
- 元画像
↓
- サムネイル
↓
- サムネイル