Files
2025-11-29 01:17:29 +08:00

58 lines
1.6 KiB
C++

//
// Created on 2024/4/2.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".
#ifndef HARMONYFACEVERIFY_BLOBMANAGER_H
#define HARMONYFACEVERIFY_BLOBMANAGER_H
#include "FaceBlobTypes.h"
#include "BlobImageUtil.h"
#include "BlobTypes.h"
namespace dtf {
struct BlobConfig {
double compress_rate;
double desired_width;
bool need_enc_content;
bool need_enc_image;
int retry_count;
std::string upload_image_type;
std::string bis_token;
std::vector<std::string> collection;
// 加密配置
int aesKeyLen = 0;
std::string rsaMod = "";
std::string rsaExp = "";
void SetDefault();
void ParseConfig(Json config_json);
};
#ifdef DT_REQUEST_BLOB
class BlobManager {
public:
BlobConfig config;
std::string aes_key_cipher;
std::string aes_key;
int metaSerializer;
BlobManager(BlobConfig config);
~BlobManager();
virtual FaceBlobContentResult GenerateBlob(std::vector<FaceFrame> &frames, const std::map<std::string, std::string> &ext);
virtual BlobMeta GenerateMeta(const std::map<std::string, std::string> &ext);
virtual std::string ToString(FaceBlobContentResult &result);
std::string ProcessImage(Image &image, Image *out, Image *out_encrypted);
std::string ProcessImage(Image &image, double compress_rate, Rect roi);
};
#endif
}
#endif //HARMONYFACEVERIFY_BLOBMANAGER_H