CvxText.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #pragma once
  2. #ifndef PUTTEXT_H_
  3. #define PUTTEXT_H_
  4. #include <string>
  5. #include <opencv2/opencv.hpp>
  6. #include "lib_common_depence.h"
  7. using namespace std;
  8. #define font_family "宋体"
  9. #define font_size 30
  10. #define chk_width 30
  11. #define main_wdith 1430
  12. #define max_line 14
  13. void GetStringSize(HDC hDC, const char* str, int* w, int* h);
  14. //获取字符串的宽高
  15. cv::Size GetTextSize(const char* str, int fontSize, const char *fn = "Arial", bool italic = false, bool underline = false);
  16. void putTextZH(cv::Mat &dst, cv::Size & rSize, const char* str, cv::Point org, cv::Scalar color, int fontSize,
  17. const char *fn = "Arial", bool italic = false, bool underline = false);
  18. /// 数据收集卡 功能样式设计
  19. /********************************************************
  20. * @function : 获取字符串的画布上的宽度
  21. * @brief : brief
  22. * @input : str: 字符串
  23. * @input : fontSize: 信息区域字体大小
  24. * @input : ttBoxW: 填涂框宽度
  25. * @input : tiSl: 题号和题干的距离
  26. * @input : backPix: 每行的预留空间
  27. * @return :
  28. * @author : qqm 2022/08/31 19:42
  29. *********************************************************/
  30. int getLineStrWidth(string str, int fontSize, int ttBoxW, int tiSl, int backPix);
  31. /********************************************************
  32. * @function : 生成一张数据收集卡
  33. * @brief : brief
  34. * @input : cols: 栏数
  35. * @input : index: 关联ID
  36. * @input : fontSize: 信息区域字体大小
  37. * @input : linGrayPix: 横线的灰度值
  38. * @input : vecLines: 本张数据行
  39. * @input : engShow: 是否显示词性
  40. * @return :
  41. * @author : qqm 2022/08/31 19:42
  42. *********************************************************/
  43. int dataCollectionPaper(int cols, int index, int fontSize, int lineGrayPix, bool engShow, std::vector<tuple<string, string>>& vecLines, CString dir, std::string& strPngPath);
  44. /********************************************************
  45. * @function : 答题卡切割
  46. * @brief : brief
  47. * @input : pageNum: 页面二进制编码
  48. * @input : strJsonPath: 模板Json路径
  49. * @input : strPaperPath: 答题卡路径
  50. * @input : strSavePath: 存储路径
  51. * @input : vecTranslate: 百度识别后返回的
  52. * @return : > 0 失败
  53. * @author : qqm 2022/08/31 19:42
  54. *********************************************************/
  55. int cutPaper(int pageNum, std::string strJsonPath, std::string strPaperPath, std::string strSavePath, vector<std::tuple<cv::Rect, std::string>>& vecTranslate);
  56. int PareseModeJson(preinfo::templatesInfo& temeplatInfo);
  57. #endif // PUTTEXT_H_