来自图形魔法的缩略图,无需升级

Der*_*ins 3 node.js graphicsmagick

我在nodejs中使用图形magick包装器,并使用以下代码创建方形缩略图:

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);
  });
Run Code Online (Sandbox Code Playgroud)

这很好用,直到我的缩略图的大小比输入图像大.在这种情况下,我希望缩略图是规定的大小,但是要将图像放在它的中心而不是调整大小.

有没有办法用一组命令执行此操作,还是必须编写一些单独的逻辑来确定?

Der*_*ins 14

我最终使用此命令直接使用GM:

gm convert inputPath -resize "200x200>" -gravity center -extent 200x200 outputPath
Run Code Online (Sandbox Code Playgroud)

这将创建一个200x200的图像,其中输入图像居中,它们 - 大小200x200>部分(注意>)意味着只调整它的尺寸更小而不是更大

在节点中使用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);
  });
Run Code Online (Sandbox Code Playgroud)