我在这里使用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。我不知道是什么问题。 请帮我解决这个问题。 谢谢
答案 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);
我认为您可以在一个独特的声明中链接resize
和crop