2014-10-09 50 views
1

我使用节点克模块,用于图像处理像下面的NodeJS图像尺寸增加/减少和作物

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 dimensions.How可以调整图像的大小,而不会打扰原始尺寸。

回答

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

    });