我正在使用节点gm模块进行图像处理,如下所示
gm(req.files.file.path)
.rotate('white', parseFloat(body.angle))
.scale(body.mW * 1, body.mH * 1)
.crop(body.mW_W * 1, body.mH_W * 1, body.x * 1, body.y * 1)
.resize(parseInt(body.w), parseInt(body.h), "!")
.quality(1)
.setFormat("png")
.write(small, function (err) {
if (!err) {
console.log('Done!');
} else {
console.log(err);
console.log('error occurred');
}
});
实际尺寸可能会有所不同,但我正在为scale
(也尝试resize
)方法提供的宽度和高度可能会更高或更小。正因为如此,我正在调整图像,并将其调整为最终body.w, body.h
尺寸。如何在不影响原始尺寸的情况下调整图像大小。
答案 0 :(得分:2)
我找到答案,如果有人使用jquery guillotine
或类似的库在服务器上选择部分图片裁剪,请使用以下代码
var newW = body.imageWidth * body.scale, newH = body.imageHeight * body.scale;
gm(req.files.file.path)
.rotate('white', body.angle)
.resize(newW, newH, '!')
.crop(body.w, body.h, body.x, body.y).write(path, function(err){
});