nodeJS图像大小增加/减少和裁剪

时间:2014-10-09 16:51:58

标签: node.js

我正在使用节点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尺寸。如何在不影响原始尺寸的情况下调整图像大小。

1 个答案:

答案 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){

    });