| | |
| | | "errors" |
| | | "github.com/gin-gonic/gin" |
| | | "github.com/golang/glog" |
| | | "github.com/pierrec/lz4" |
| | | "gocv.io/x/gocv" |
| | | "image" |
| | | "net" |
| | |
| | | } |
| | | f, _ := strconv.ParseFloat(fmt.Sprintf("%2.2f", compareScore), 32) |
| | | return float32(f) |
| | | } |
| | | } |
| | | |
| | | // UnCompress uncompress |
| | | func UnCompress(in []byte) ([]byte, error) { |
| | | out := make([]byte, 10*len(in)) |
| | | n, err := lz4.UncompressBlock(in, out) |
| | | if err != nil { |
| | | fmt.Println(err) |
| | | return nil, err |
| | | } |
| | | out = out[:n] // uncompressed data |
| | | return out, nil |
| | | } |
| | | |
| | | // Compress compress |
| | | func Compress(in []byte) ([]byte, error) { |
| | | out := make([]byte, len(in)) |
| | | ht := make([]int, 64<<10) // buffer for the compression table |
| | | n, err := lz4.CompressBlock(in, out, ht) |
| | | if err != nil { |
| | | fmt.Println(err) |
| | | return nil, err |
| | | } |
| | | if n >= len(in) { |
| | | fmt.Println("image is not compressible") |
| | | } |
| | | out = out[:n] // compressed data |
| | | return out, nil |
| | | } |
| | |
| | | "sync" |
| | | "time" |
| | | "webserver/extend/logger" |
| | | "webserver/extend/util" |
| | | ) |
| | | |
| | | type FaceSdkService struct { |
| | |
| | | if err := proto.Unmarshal(resultBytes, &rMsg); err == nil { |
| | | logger.Debug("received MSG:", rMsg.Cid) |
| | | i := protomsg.Image{} |
| | | err := proto.Unmarshal(rMsg.Data, &i) |
| | | bdata, err := util.UnCompress(rMsg.Data) |
| | | if err !=nil { |
| | | logger.Debug("uncompress err:",err) |
| | | continue |
| | | } |
| | | err = proto.Unmarshal(bdata, &i) |
| | | if err !=nil { |
| | | continue |
| | | } |