node.js - 来自图形魔法的缩略图,没有放大

标签 node.js graphicsmagick

我正在使用 graphics magick wrapper在 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);
  });

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

有没有办法用一组命令来做到这一点,还是我必须编写一些单独的逻辑来确定这一点?

最佳答案

我最终使用这个命令直接使用 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);
  });

关于node.js - 来自图形魔法的缩略图,没有放大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14705152/

相关文章:

javascript - 如何正确取消订阅 socket.io 房间并销毁它?

javascript - 如何从js客户端发送json格式的ArrayBuffer到nodejs服务器?

node.js - 错误 : The module . ..是使用 NODE_MODULE_VERSION 57 针对不同的 Node.js 版本进行编译的。此版本的 Node.js 需要

image - 如何使用 GraphicsMagick 从图像中删除背景颜色?

image - 使用 imagemagick 检测大部分空图像

node.js - 如何使用 key 获取数据

JavaScript - 有没有办法通过指定的键属性合并 2 个对象?

c++ - 如何使用 GraphicsMagick C++ API 找到 PNG 图像的大小?

c - 使用 GraphicsMagick C API,未知类型图像编译错误

linux - 光栅制图转换库。 'Unprojected' 到任何