From 171b45f8d78612e82c4923042ac8101e3f4a8f42 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 05 六月 2024 17:05:41 +0800 Subject: [PATCH] 添加切小图的图像分辨率转换 --- config/config.go | 12 ++++++++++-- repository/captureRepo.go | 15 ++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/config/config.go b/config/config.go index 7515d62..850232b 100644 --- a/config/config.go +++ b/config/config.go @@ -47,8 +47,14 @@ ReportServer string `mapstructure:"report-server"` ReportInterval int `mapstructure:"report-interval"` RetryInterval int `mapstructure:"retry-interval"` - CutFaceImage bool `mapstructure:"cut-face-image"` - Enable bool `mapstructure:"enable"` + + Enable bool `mapstructure:"enable"` +} + +type image struct { + CutFaceImage bool `mapstructure:"cut-face-image"` + OriginWidth int `mapstructure:"origin-width"` + OriginHeight int `mapstructure:"origin-height"` } // 姊帶璁惧 @@ -69,6 +75,7 @@ var RateLimitConf = &rateLimitConfig{} var ClientConf = &client{} var NVCSConf = &nvcs{} +var ImageConf = &image{} // Init is an exported method that takes the environment starts the viper // (external lib) and returns the configuration struct. @@ -99,6 +106,7 @@ v.UnmarshalKey("rate-limit", RateLimitConf) v.UnmarshalKey("client", ClientConf) v.UnmarshalKey("nvcs", NVCSConf) + v.UnmarshalKey("image", ImageConf) if LogConf.Level == "" { LogConf.Level = "info" diff --git a/repository/captureRepo.go b/repository/captureRepo.go index 8572735..2a53144 100644 --- a/repository/captureRepo.go +++ b/repository/captureRepo.go @@ -37,6 +37,7 @@ var deviceId = face.DeviceID var faceId = face.FaceID var bgImageStr, imageType string + var bgImageWidth, bgImageHeight int var bgImageBytes, faceImageBytes []byte = nil, nil // 鑾峰彇澶у浘, 鐩墠娴峰悍鐨勫皬鍥惧垎杈ㄧ巼澶綆 @@ -45,6 +46,8 @@ continue } + bgImageWidth = image.Width + bgImageHeight = image.Height if len(image.Data) > 0 { if len(image.Data) > len(bgImageStr) { bgImageStr = image.Data @@ -69,12 +72,14 @@ } // 鍒ゆ柇鍥剧墖绫诲瀷鏄惁涓哄満鏅浘, 鏍规嵁浜鸿劯鍧愭爣鍒囧皬鍥�. - if imageType == "14" && config.ForwardConf.CutFaceImage { + if imageType == "14" && config.ImageConf.CutFaceImage { + scaleX := bgImageWidth / config.ImageConf.OriginWidth + scaleY := bgImageHeight / config.ImageConf.OriginHeight faceRect := &vo.Rect{ - Left: face.LeftTopX, - Top: face.LeftTopY, - Right: face.RightBtmX, - Bottom: face.RightBtmY, + Left: face.LeftTopX * scaleX, + Top: face.LeftTopY * scaleY, + Right: face.RightBtmX * scaleX, + Bottom: face.RightBtmY * scaleY, } faceImageBytes, err = util.SubCutImg(bgImageBytes, faceRect, 90) -- Gitblit v1.8.0