From 7c811247ecf143e08c576986a884bedadc57dd66 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期五, 05 六月 2020 18:29:41 +0800 Subject: [PATCH] add refresh token to resp --- controllers/fileController.go | 69 +++++++++++++++++++++------------- 1 files changed, 43 insertions(+), 26 deletions(-) diff --git a/controllers/fileController.go b/controllers/fileController.go index e2495b9..ad9a211 100644 --- a/controllers/fileController.go +++ b/controllers/fileController.go @@ -5,6 +5,7 @@ "basic.com/fileServer/WeedFSClient.git" esApi "basic.com/pubsub/esutil.git" "basic.com/pubsub/protomsg.git" + "basic.com/valib/godraw.git" "basic.com/valib/logger.git" "bytes" "encoding/base64" @@ -12,7 +13,6 @@ "errors" "fmt" "github.com/gin-gonic/gin" - "gocv.io/x/gocv" "image" "image/color" "image/jpeg" @@ -71,7 +71,7 @@ filename := header.Filename var result = make(map[string]string) if picType == "1" { - fileNameOnly, _, err, faceFeature := uploadFileReturnAddr(file, filename, "", false) + _, _, err, faceFeature, faceUrlPath := uploadFileReturnAddr(file, filename, "", false) if err != nil { if err.Error() == "NotFeatureFindError" { util.ResponseFormat(c, code.NotFeatureFindError, filename) @@ -80,7 +80,7 @@ } return } - result["picUrl"] = fileNameOnly + result["picUrl"] = faceUrlPath result["faceFeature"] = faceFeature } else { localConf, err2 := cache.GetServerInfo() @@ -148,7 +148,11 @@ urlArr := make([]string,0) for _,r := range faceArr { rcFace := r.Pos.RcFace - cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom)) + cutFaceImgData,cutErr := util.SubCutImg(pI, rcFace, 20) + if cutErr != nil { + logger.Debug("util.SubCutImg err:", cutErr) + continue + } weedFilePath, e := WeedFSClient.UploadFile(weedfsUri, "FaceUrl", cutFaceImgData) if e == nil{ faceExtractedMap[weedFilePath] = FaceExtract{ @@ -171,19 +175,25 @@ } func drawPolygonOnImg(i *protomsg.Image,faceArr *[]*protomsg.ResultFaceDetect) (*[]byte,error) { - rook, _ := gocv.NewMatFromBytes(int(i.Height), int(i.Width), gocv.MatTypeCV8UC3, i.Data) - defer rook.Close() - //yellow := color.RGBA{255, 255, 0, 0} + img,err := godraw.ToImage(i.Data, int(i.Width), int(i.Height)) + if err != nil { + return nil,err + } red := color.RGBA{255, 0, 0, 0} for _,faceResult := range *faceArr { - left := int(faceResult.Pos.RcFace.Left) - top := int(faceResult.Pos.RcFace.Top) - right := int(faceResult.Pos.RcFace.Right) - bottom := int(faceResult.Pos.RcFace.Bottom) - gocv.Rectangle(&rook, image.Rect(left,top,right,bottom), red, 1) + rect := image.Rect(int(faceResult.Pos.RcFace.Left), + int(faceResult.Pos.RcFace.Top), + int(faceResult.Pos.RcFace.Right), + int(faceResult.Pos.RcFace.Bottom)) + err = godraw.DrawRectangle(img, rect, red, 3) + if err != nil { + logger.Debug("godraw.DrawRectangle err:", err) + } } - fData,err := gocv.IMEncode(".jpg", rook) - return &fData,err + + quantity := 100 + jpgData, err := godraw.ImageToJpeg(img, &quantity) + return &jpgData,err } type CompareResult struct { @@ -413,7 +423,7 @@ faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes, time.Second*60) if err ==nil && len(faceArr) ==1 { rcFace := faceArr[0].Pos.RcFace - cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom)) + cutFaceImgData,_ := util.SubCutImg(pI, rcFace, 20) weedFilePath, e := WeedFSClient.UploadFile(weedfsUri, "FaceUrl", cutFaceImgData) if e == nil{ faceExtractedMap[weedFilePath] = FaceExtract{ @@ -492,6 +502,9 @@ return } faceB = decodeF + } else { + util.ResponseFormat(c, code.ComError, "鏈潯浜鸿劯鎶撴媿鐗瑰緛涓虹┖锛岃妫�鏌�") + return } } @@ -761,7 +774,7 @@ break } //鏍规嵁浜鸿劯鍧愭爣鎵e嚭浜鸿劯灏忓浘 - cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom)) + cutFaceImgData,_ := util.SubCutImg(pI, rcFace, 20) weedFilePath, e := WeedFSClient.UploadFile(weedfsUri, "testCutFace", cutFaceImgData) if e !=nil{ util.ResponseFormat(c,code.ComError,"鏂囦欢涓婁紶澶辫触") @@ -779,24 +792,24 @@ log.Fatalln(err) }*/ -func uploadFileReturnAddr(file multipart.File, filename string, tableId string, add2Db bool) (string, map[string]interface{}, error, string) { +func uploadFileReturnAddr(file multipart.File, filename string, tableId string, add2Db bool) (string, map[string]interface{}, error, string, string) { defer file.Close() // weedfs 涓婁紶 fileBytes, err := ioutil.ReadAll(file) if err !=nil { - return "",nil,err,"" + return "",nil,err,"","" } //灏嗕笂浼犵殑鍥剧墖浜や汉鑴告娴嬪拰浜鸿劯鎻愬彇锛岃幏寰楃壒寰� var faceBase64="" faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes, time.Second*5) if faceArr ==nil { - return "",nil,errors.New("NotFeatureFindError"),"" + return "",nil,errors.New("NotFeatureFindError"),"","" } var rcFace *protomsg.Rect if err ==nil && len(faceArr) >0 { if len(faceArr) >1 { - return "",nil, errors.New("TooManyFaces"),"" + return "",nil, errors.New("TooManyFaces"),"","" } for _,r := range faceArr { //鎷垮埌浜鸿劯鐨勫潗鏍� @@ -809,12 +822,16 @@ localConf, err2 := cache.GetServerInfo() if err2 !=nil || localConf.WebPicIp == "" { logger.Debug("localConfig is wrong!!!") - return "",nil,err2,"" + return "",nil,err2,"","" } var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit?collection=persistent" //鏍规嵁浜鸿劯鍧愭爣鎵e嚭浜鸿劯灏忓浘 t1 := time.Now() - cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom)) + cutFaceImgData,cutErr := util.SubCutImg(pI, rcFace, 20) + if cutErr != nil { + logger.Debug("util.SubCutImg err:", cutErr) + return "", nil, cutErr,"","" + } logger.Debug("SubImg鐢ㄦ椂锛�", time.Since(t1)) t1 = time.Now() weedFilePath, e := WeedFSClient.UploadFile(weedfsUri, filename, cutFaceImgData) @@ -822,7 +839,7 @@ t1 = time.Now() if e != nil { logger.Debug("WeedFSClient.UploadFile err:", e) - return "", nil, e,"" + return "", nil, e,"","" } ext := path.Ext(filename) @@ -840,8 +857,8 @@ result = addDbPerson(dbperson) } - logger.Debug("addDbPerson鐢ㄦ椂锛�", time.Since(t1)) - return fileNameOnly, result, nil,faceBase64 + logger.Debug("addDbPerson鐢ㄦ椂锛�", time.Since(t1), "result:", result) + return fileNameOnly, result, nil,faceBase64, weedFilePath } @@ -898,7 +915,7 @@ lock.Unlock() return } - field, _, err1,_ := uploadFileReturnAddr(file, filename, tableId, true) + field, _, err1,_,_ := uploadFileReturnAddr(file, filename, tableId, true) lock.Lock() if err1 != nil || field == "" { if err1 !=nil && err1.Error() == "NotFeatureFindError" { -- Gitblit v1.8.0