#pragma once #include "base/HGDef.h" #include "base/HGInc.h" #include "base/HGLock.h" #include "base/HGImage.h" #include "base/HGMsgPump.h" #include "sane/sane_ex.h" #include "sane/sane_option_definitions.h" #include "Manager.h" #include "Msg.h" #include #include namespace ver_2 { struct GlobalConfig { // 文件保存 std::string fileSavePath; std::string fileNamePrefix; std::string fileNameMode; // 图像保存 std::string imageFormat; int imageJpegQuality; std::string imageTiffCompression; int imageTiffJpegQuality; // 上传 std::string uploadHttpHost; unsigned short uploadHttpPort; std::string uploadHttpPath; std::string uploadFtpUser; std::string uploadFtpPassword; std::string uploadFtpHost; unsigned short uploadFtpPort; }; class ManagerV2 : public Manager { public: ManagerV2(HGMsgPump msgPump); virtual ~ManagerV2(); // 扫描完成 void ScanFinish(const ScanFinishParam* param); // 设置全局配置 int SetGlobalConfig(const GlobalConfig& cfg); // 获取全局配置 int GetGlobalConfig(GlobalConfig& cfg); // 加载本地图像 int LoadLocalImage(const std::string& imagePath, std::string& imgBase64); // 保存本地图像 int SaveLocalImage(const std::string& imgBase64, std::string& imagePath); // 删除本地文件 int DeleteLocalFile(const std::string& filePath); // 清理全局文件保存目录 int ClearGlobalFileSavePath(); // 合成本地图像 int MergeLocalImage(const std::vector& imagePathList, const std::string& mode, const std::string& align, int interval, std::string& outImagePath); // 本地合成多张图像 int LocalMakeMultiImage(const std::vector& imagePathList, const std::string& format, const std::string& tiffCompression, int tiffJpegQuality, std::string& outImagePath); // 拆分本地图像 int SplitLocalImage(const std::string& imagePath, const std::string& mode, int location, std::vector& outImagePathList); // 本地生成压缩文件 int LocalMakeZipFile(const std::vector& filePathList, std::string& outZipPath); // 本地图像纠偏 int LocalImageDeskew(const std::string& imagePath, std::string& outImagePath); // 上传文件 int UploadLocalFile(const std::string& filePath, const std::string& mode, const std::string& remoteFilePath); private: static std::string GetCfgStringValue(const std::string& app, const std::string& key, const std::string& def); static int GetCfgIntValue(const std::string& app, const std::string& key, int def); static bool GetCfgBoolValue(const std::string& app, const std::string& key, bool def); static bool SetCfgStringValue(const std::string& app, const std::string& key, const std::string& val); static bool SetCfgIntValue(const std::string& app, const std::string& key, int val); static bool SetCfgBoolValue(const std::string& app, const std::string& key, bool val); static int LoadBase64(const std::string& fileName, std::string& base64); static int SaveBase64(const std::string& base64, const std::string& fileName); static std::string GetFilePath(const std::string& suffix); static std::string GetImagePath(); private: }; }