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