| | |
| | | package util |
| | | |
| | | import ( |
| | | "basic.com/pubsub/protomsg.git" |
| | | "bytes" |
| | | "fmt" |
| | | "github.com/gogo/protobuf/proto" |
| | | "image" |
| | | "image/jpeg" |
| | | "reflect" |
| | | ) |
| | | // 按尺寸去切图 |
| | | func subimg(dbyte []byte,x0,y0,x1,y1 int,) []byte{ |
| | | func Subimg(dbyte []byte,x0,y0,x1,y1 int,) protomsg.Image{ |
| | | |
| | | bbb := bytes.NewBuffer(dbyte) // 必须加一个buffer 不然没有read方法就会报错 |
| | | m, _, _ := image.Decode(bbb) // 图片文件解码 |
| | |
| | | emptyBuff := bytes.NewBuffer(nil) //开辟一个新的空buff |
| | | jpeg.Encode(emptyBuff, subImg, nil) //img写入到buff |
| | | bytes := emptyBuff.Bytes() |
| | | return bytes |
| | | i := protomsg.Image{} |
| | | proto.Unmarshal(bytes,&i) |
| | | return i |
| | | //f, _ := os.Create("./test.jpg") //创建文件 |
| | | //defer f.Close() //关闭文件 |
| | | //jpeg.Encode(f, subImg, nil) //写入文件 |