2014-10-09 84 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){ 

    });