鍍金池/ 問答/HTML5  HTML/ 后臺(tái)(node) 使用images模塊來處理剪裁圖片

后臺(tái)(node) 使用images模塊來處理剪裁圖片

前臺(tái)上傳圖片,剪裁使用jcrop。傳給后臺(tái)的裁剪數(shù)據(jù)

    imgData.x=c.x;
    imgData.y=c.y;
    imgData.w=c.w;
    imgData.h=c.h;

后臺(tái)接收后獲取到的參數(shù)信息

 { imgcutX: '19',
  imgcutY: '47',
  imgcutW: '104',
  imgcutH: '132',
  imgOriginWH: '463,462' }
 [ { fieldname: 'f1',
    originalname: 'timg.jpg',
    encoding: '7bit',
    mimetype: 'image/jpeg',
    destination: './static/upload',
    filename: '53e5b756556f916424bd33e8425c77b0',
    path: 'static\\upload\\53e5b756556f916424bd33e8425c77b0',
    size: 4129 } ]
    

處理部分的代碼:

    var patharr=req.files[0].path.split('\\')
    patharr.pop();
    var newP=patharr.join('\\')+'\\';
    var picName=new Date().getTime()+pathLib.parse(req.files[0].originalname).ext
    var newfileName=newP+picName
    fs.rename(req.files[0].path,newfileName,function(err){
        if(err){
          console.log('失敗')
          return;
          res.status(500).send('上傳圖片失??!').end();
        }else{
           images(images('./static/upload/'+picName),req.body.imgcutX,req.body.imgutY,req.body.imgcutW,req.body.imgcutH).resize(100).save('./static/upload/n-'+picName)
        }
        

這樣寫并沒有裁剪圖片,而是把圖片整張壓縮成了x,y,w,h這么小了。是images用錯(cuò)了?還是前臺(tái)傳的數(shù)據(jù)有問題?希望會(huì)的大佬答一下...

回答
編輯回答
扯機(jī)薄

可以確定的是,后端images使用沒錯(cuò)。你去看一下前端傳來的圖片的尺寸之類的吧。

2018年8月5日 10:15