From 9716a5d56183677ff5092eda659dc1fcafc52f33 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期三, 03 七月 2019 16:33:43 +0800 Subject: [PATCH] --- --- util/image.go | 32 ++++++++------------------------ 1 files changed, 8 insertions(+), 24 deletions(-) diff --git a/util/image.go b/util/image.go index a00e3b7..e81abde 100644 --- a/util/image.go +++ b/util/image.go @@ -2,30 +2,14 @@ import ( "basic.com/pubsub/protomsg.git" - "bytes" - "fmt" - "github.com/gogo/protobuf/proto" + "gocv.io/x/gocv" "image" - "image/jpeg" - "reflect" ) // 鎸夊昂瀵稿幓鍒囧浘 -func Subimg(dbyte []byte,x0,y0,x1,y1 int,) protomsg.Image{ - - bbb := bytes.NewBuffer(dbyte) // 蹇呴』鍔犱竴涓猙uffer 涓嶇劧娌℃湁read鏂规硶灏变細鎶ラ敊 - 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) //鍐欏叆鏂囦欢 -} \ No newline at end of file +func SubImg(i protomsg.Image,x0,y0,x1,y1 int,) []byte{ + img,_ := gocv.NewMatFromBytes(int(i.Height),int(i.Width),gocv.MatTypeCV8UC3,i.Data) + rect := image.Rect(x0,y0,x1,y1) + region := img.Region(rect) + bytes, _ := gocv.IMEncode(".jpg", region) + return bytes +} -- Gitblit v1.8.0