From 8added81d3fa7aa2616711a80e3a3edf71840f6a Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期二, 02 七月 2019 20:23:01 +0800 Subject: [PATCH] --- --- util/image.go | 45 ++++++++++++++++++++++++--------------------- 1 files changed, 24 insertions(+), 21 deletions(-) diff --git a/util/image.go b/util/image.go index a00e3b7..bb30a89 100644 --- a/util/image.go +++ b/util/image.go @@ -1,31 +1,34 @@ package util import ( - "basic.com/pubsub/protomsg.git" - "bytes" - "fmt" - "github.com/gogo/protobuf/proto" + "gocv.io/x/gocv" "image" - "image/jpeg" - "reflect" + "log" ) // 鎸夊昂瀵稿幓鍒囧浘 -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鏂规硶灏变細鎶ラ敊 - 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) //鍐欏叆鏂囦欢 -} \ No newline at end of file + log.Println("--------------------------鍥涘ぇ閲戝垰锛�",x0,y0,x1,y1) + img,_ := gocv.NewMatFromBytes(50,50,gocv.MatTypeCV8UC3,dbyte) + rect := image.Rect(x0,y0,x0+50,y0+50) + region := img.Region(rect) + bytes, _ := gocv.IMEncode(".jpg", region) + return bytes +} -- Gitblit v1.8.0