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

时间:2013-02-05 10:21:34

标签: node.js graphicsmagick

我在nodejs中使用graphics magick wrapper并使用以下代码创建方形缩略图:

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);
  });

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

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

1 个答案:

答案 0 :(得分:14)

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

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

这将创建一个200x200的图像,输入图像居中,它们 - 大小为200x200> part(注意>)表示只调整它以使其更小而不是更大

在节点中使用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);
  });