3

nodejsでグラフィックスマジックラッパーを使用しており、次のコードを使用して正方形のサムネイルを作成しています。

var size = {width: 200, height: 200};
gm(sourcePath)
  .resize(size.width * 2, (size.height * 2) + '')
  .thumbnail(size.width, size.height + '^')
  .gravity('center')
  .extent(size.width, size.height)
  .profile('*')
  .write(outputPath, function (error) {
    if (error) console.log('Error - ', error);
  });

これは、サムネイルのサイズが入力画像よりも大きくなるまで、うまく機能します。この場合、サムネイルを規定のサイズにしますが、画像のサイズを変更するのではなく、サムネイルの中央に配置します。

コマンドのグループでこれを行う方法はありますか、それともそれを決定するためにいくつかの個別のロジックを作成する必要がありますか?

4

1 に答える 1

14

私はこのコマンドを使用してこれに直接GMを使用することになりました:

gm convert inputPath -resize "200x200>" -gravity center -extent 200x200 outputPath

これにより、入力画像が中央に配置された画像200x200が作成されます。-resize200x200>部分(>に注意)は、サイズを小さくするだけで、大きくしないことを意味します。

ノードでgmモジュールを使用する同等のコマンドは次のとおりです。

var size = {width: 200, height: 200};
gm(sourcePath)
  .resize(size.width, size.height + ">")
  .gravity('Center')
  .extent(size.width, size.height)
  .write(outputPath, function (error) {
    if (error) console.log('Error - ', error);
  });
于 2013-02-08T14:44:49.460 に答える