使用node.js,ImageMagic裁剪大小不正确

时间:2015-06-30 11:57:41

标签: javascript node.js image imagemagick

我在这里使用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。我不知道是什么问题。 请帮我解决这个问题。 谢谢

1 个答案:

答案 0 :(得分:1)

编辑:

使用单个语句执行所有操作还有更好的方法:

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