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 的图像,其中输入图像居中,它们 -resize 200x200> 部分(注意 >)意味着仅将其调整为更小而不是更大

在 node 中使用 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 回答