From 54f7bb20860ec5a98964290c721113d71ea6e408 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期二, 02 七月 2019 19:57:55 +0800
Subject: [PATCH] 上传人脸

---
 util/upload.go               |    8 ++++----
 insertdata/insertDataToEs.go |    5 ++---
 util/image.go                |   43 +++++++++++++++++++++----------------------
 3 files changed, 27 insertions(+), 29 deletions(-)

diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go
index 447e3af..b732361 100644
--- a/insertdata/insertDataToEs.go
+++ b/insertdata/insertDataToEs.go
@@ -126,9 +126,8 @@
 				}
 				i := protomsg.Image{}
 				err = proto.Unmarshal(bdata, &i)
-				i1 := protomsg.Image{}
-				i1 = util.Subimg(i.Data, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height))
-				resp, err := util.PostFormBufferData(weedfsUrl, i1, uuid.NewV4().String())
+				bytes := util.Subimg(i.Data, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height))
+				resp, err := util.PostFormBufferData1(weedfsUrl, bytes, uuid.NewV4().String())
 				if err != nil {
 					log.Println("涓婁紶灏忓浘鍑洪敊")
 				}
diff --git a/util/image.go b/util/image.go
index bcadd29..2673449 100644
--- a/util/image.go
+++ b/util/image.go
@@ -1,33 +1,32 @@
 package util
 
 import (
-	"basic.com/pubsub/protomsg.git"
-	"bytes"
-	"fmt"
-	"github.com/gogo/protobuf/proto"
+	"gocv.io/x/gocv"
 	"image"
-	"image/jpeg"
-	"log"
-	"reflect"
 )
 // 鎸夊昂瀵稿幓鍒囧浘
-func Subimg(dbyte []byte,x0,y0,x1,y1 int,) protomsg.Image{
+func Subimg(dbyte []byte,x0,y0,x1,y1 int,) []byte{
 
-	bbb := bytes.NewBuffer(dbyte)                           // 蹇呴』鍔犱竴涓猙uffer 涓嶇劧娌℃湁read鏂规硶灏变細鎶ラ敊
-	log.Println("==================鐪嬬湅杩欎釜buffer",bbb)
-	m, _, _ := image.Decode(bbb)                          // 鍥剧墖鏂囦欢瑙g爜
-	rgbImg := m.(*image.YCbCr)
-	subImg := rgbImg.SubImage(image.Rect(x0, y0, x1, y1)) //鍥剧墖瑁佸壀x0 y0 x1 y1
-	fmt.Println(reflect.TypeOf(subImg))
-	//f, _ := os.Create("./test.jpg")     			  //鍒涘缓鏂囦欢
-	//defer f.Close()                   					  //鍏抽棴鏂囦欢
-	emptyBuff := bytes.NewBuffer(nil)                 //寮�杈熶竴涓柊鐨勭┖buff
-	jpeg.Encode(emptyBuff, subImg, nil)                //img鍐欏叆鍒癰uff
-	bytes := emptyBuff.Bytes()
-	i := protomsg.Image{}
-	proto.Unmarshal(bytes,&i)
-	return i
+	//bbb := bytes.NewBuffer(dbyte)                           // 蹇呴』鍔犱竴涓猙uffer 涓嶇劧娌℃湁read鏂规硶灏变細鎶ラ敊
+	////log.Println("==================鐪嬬湅杩欎釜buffer",bbb)
+	//m, _, _ := image.Decode(bbb)                          // 鍥剧墖鏂囦欢瑙g爜
+	//rgbImg := m.(*image.YCbCr)
+	//subImg := rgbImg.SubImage(image.Rect(x0, y0, x1, y1)) //鍥剧墖瑁佸壀x0 y0 x1 y1
+	//fmt.Println(reflect.TypeOf(subImg))
+	////f, _ := os.Create("./test.jpg")     			  //鍒涘缓鏂囦欢
+	////defer f.Close()                   					  //鍏抽棴鏂囦欢
+	//emptyBuff := bytes.NewBuffer(nil)                 //寮�杈熶竴涓柊鐨勭┖buff
+	//jpeg.Encode(emptyBuff, subImg, nil)                //img鍐欏叆鍒癰uff
+	//bytes := emptyBuff.Bytes()
+	//i := protomsg.Image{}
+	//proto.Unmarshal(bytes,&i)
+	//return i
 	//f, _ := os.Create("./test.jpg")     			  //鍒涘缓鏂囦欢
 	//defer f.Close()                   					  //鍏抽棴鏂囦欢
 	//jpeg.Encode(f, subImg, nil)       				  //鍐欏叆鏂囦欢
+
+	img,_ := gocv.NewMatFromBytes(int(y1-y0),int(x1-x0),gocv.MatTypeCV8UC3,dbyte)
+	region := img.Region(image.Rectangle{image.Point{x0,y0},image.Point{x1,y1}})
+	bytes, _ := gocv.IMEncode(".jpg", region)
+	return bytes
 }
\ No newline at end of file
diff --git a/util/upload.go b/util/upload.go
index 9286695..a5e4870 100644
--- a/util/upload.go
+++ b/util/upload.go
@@ -76,11 +76,11 @@
 }
 
 // 涓婁紶鍥剧墖锛堜簩杩涘埗娴侊級
-func PostFormBufferData1(uri string, fbada []byte, fileName string,) (maps map[string]interface{}, err0 error) {
+func PostFormBufferData1(uri string, fdata []byte, fileName string,) (maps map[string]interface{}, err0 error) {
 	// 瑕佹寚瀹氳浆byte鐨勬牸寮�
-	imgs := gocv.NewMat()
-	imgs, _ = gocv.NewMatFromBytes(1000, 1000, gocv.MatTypeCV8UC3, fbada)
-	fdata,_ := gocv.IMEncode(".jpg",imgs)
+	//imgs := gocv.NewMat()
+	//imgs, _ = gocv.NewMatFromBytes(1000, 1000, gocv.MatTypeCV8UC3, fbada)
+	//fdata,_ := gocv.IMEncode(".jpg",imgs)
 	body := &bytes.Buffer{}
 	writer := multipart.NewWriter(body)
 	_, err := writer.CreateFormFile("file", fileName)

--
Gitblit v1.8.0