使用 node.js ImageMagick 裁剪尺寸不正确

ImageMagic crop size is incorrect using node.js

我正在使用 imageMagic 模块裁剪图像,这是我的代码:-

var imageMagick = require('imagemagick');
 imageMagick.resize({
    width: 50,
    height: 50,
    strip: false,
    srcPath: options.uploadDir + '/' + fileInfo.name,
    dstPath: options.uploadDir + '/' + version + '/' + fileInfo.name
}, finish);

它工作正常并裁剪图像,但问题是当我将尺寸设置为 50x50 时 但是当裁剪图像时,我得到的图像尺寸为 50x38。我不知道是什么问题。 请帮我解决这个问题。 谢谢

编辑:

还有一个更好的方法可以用一条语句完成所有事情:

imageMagick.resize({
    srcData: img,
    strip: false,
    width: 50,
    height: "50^",
    customArgs: [
        "-gravity", "center", "-extent", "50x50"
    ]
}, finish);

如果您需要从矩形变成正方形,您应该首先按照最小边的大小裁剪图像。

例如,如果您有一张 1024x768 的图像,求宽和高,然后求最小边 (768),然后像这样裁剪:

imageMagick.crop({
    width: 768,
    height: 768,
    srcPath: options.uploadDir + '/' + fileInfo.name,
    dstPath: options.uploadDir + '/' + version + '/' + fileInfo.name
}, finish);

然后您可以将其调整为正方形,如 50x50:

imageMagick.resize({
    width: 50,
    height: 50,
    srcPath: options.uploadDir + '/' + fileInfo.name,
    dstPath: options.uploadDir + '/' + version + '/' + fileInfo.name
}, finish);

我认为您可以在一个独特的语句中链接 resizecrop