新增颜色填充

This commit is contained in:
mo1027728827@qq.com 2022-05-20 15:53:40 +08:00
parent 56adfaec20
commit 9ab480ec35
6 changed files with 33 additions and 25 deletions

View File

@ -24,7 +24,7 @@ hg_scanner::hg_scanner(ScannerSerial serial
, bright_(128), contrast_(4), gamma_(1.0f), threshold_(40), anti_noise_(8), margin_(5) , bright_(128), contrast_(4), gamma_(1.0f), threshold_(40), anti_noise_(8), margin_(5)
, fractate_level_(50), ui_ev_cb_(ui_default_callback), scan_life_(NULL) , fractate_level_(50), ui_ev_cb_(ui_default_callback), scan_life_(NULL)
, notify_setting_result_(false), user_cancel_(false), cb_mem_(true), test_1_paper_(false) , notify_setting_result_(false), user_cancel_(false), cb_mem_(true), test_1_paper_(false)
, setting_count_(0),img_type_(""), online_(false),is_quality_(-1) , setting_count_(0),img_type_(""), online_(false),is_quality_(-1),is_color_fill(false)
{ {
custom_gamma_val_ = new SANE_Gamma; custom_gamma_val_ = new SANE_Gamma;
memset(custom_gamma_val_, 0, sizeof(SANE_Gamma)); memset(custom_gamma_val_, 0, sizeof(SANE_Gamma));
@ -356,6 +356,9 @@ void hg_scanner::set_setting_map(int sn, const char* title)
setting_map_[HG_BASE_SETTING_INDEX_SKEW_CHECK] = sn; setting_map_[HG_BASE_SETTING_INDEX_SKEW_CHECK] = sn;
else if (val == OPTION_TITLE_WXRRD) else if (val == OPTION_TITLE_WXRRD)
setting_map_[HG_BASE_SETTING_INDEX_SKEW_CHECK_LEVEL] = sn; setting_map_[HG_BASE_SETTING_INDEX_SKEW_CHECK_LEVEL] = sn;
else if (val == OPTION_TITLE_SCTC)
setting_map_[HG_BASE_SETTING_INDEX_COLOR_FILL] = sn;
} }
void hg_scanner::thread_handle_usb(void) void hg_scanner::thread_handle_usb(void)
{ {
@ -917,15 +920,11 @@ int hg_scanner::setting_restore(void* data)
int hg_scanner::setting_help(void* data) int hg_scanner::setting_help(void* data)
{ {
int ret = SCANNER_ERR_OK; int ret = SCANNER_ERR_OK;
if (name_ == "华高扫描仪—G100") //保留
{
/* code */
}
std::string helpfile = helpfile_; std::string helpfile = helpfile_;
std::string com = "xdg-open ";//注意空格保留 std::string com = "xdg-open ";//注意空格保留
printf("helpfile = %s\r\n",helpfile.c_str());
#ifdef WIN32 #ifdef WIN32
FILE* src = fopen(helpfile.c_str(), "rb"); FILE* src = fopen(helpfile.c_str(), "rb");
if (src) if (src)
@ -935,7 +934,7 @@ int hg_scanner::setting_help(void* data)
if (access(helpfile.c_str(),F_OK) == -1) if (access(helpfile.c_str(),F_OK) == -1)
#endif #endif
{ {
HG_VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"App_Help_pdf path is:%s\r\n",hg_scanner::strerr((scanner_err)ret).c_str()); HG_VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"App_Help_pdf path is:%s system is:%d\r\n",helpfile.c_str());
ret = SCANNER_ERR_OPEN_FILE_FAILED; ret = SCANNER_ERR_OPEN_FILE_FAILED;
return ret ; return ret ;
} }
@ -1563,7 +1562,6 @@ int hg_scanner::setting_img_quality(void *data)
std::string str((char*)data); std::string str((char*)data);
bool exact = check_range(setting_map_[HG_BASE_SETTING_INDEX_IMG_QUALITY], str); bool exact = check_range(setting_map_[HG_BASE_SETTING_INDEX_IMG_QUALITY], str);
int ret = exact ? SCANNER_ERR_OK : SCANNER_ERR_NOT_EXACT; int ret = exact ? SCANNER_ERR_OK : SCANNER_ERR_NOT_EXACT;
HG_VLOG_MINI_3(LOG_LEVEL_DEBUG_INFO, "Change quality from '%s' to '%s' = %s\n", is_img_quality(is_quality_).c_str() HG_VLOG_MINI_3(LOG_LEVEL_DEBUG_INFO, "Change quality from '%s' to '%s' = %s\n", is_img_quality(is_quality_).c_str()
, (char*)data, hg_scanner::strerr((scanner_err)ret).c_str()); , (char*)data, hg_scanner::strerr((scanner_err)ret).c_str());
@ -1571,7 +1569,11 @@ int hg_scanner::setting_img_quality(void *data)
return SCANNER_ERR_OK; return SCANNER_ERR_OK;
} }
int hg_scanner::setting_color_fill(void *data)
{
is_color_fill = *((bool *)data);
return SCANNER_ERR_OK;
}
int hg_scanner::on_color_mode_changed(int& color_mode) int hg_scanner::on_color_mode_changed(int& color_mode)
{ {
return SCANNER_ERR_OK; return SCANNER_ERR_OK;
@ -1950,6 +1952,7 @@ int hg_scanner::set_setting(int setting_no, void* data, int len)
, &hg_scanner::setting_filling_background , &hg_scanner::setting_filling_background
, &hg_scanner::setting_is_permeate , &hg_scanner::setting_is_permeate
, &hg_scanner::setting_is_permeate_lv , &hg_scanner::setting_is_permeate_lv
, &hg_scanner::setting_color_fill
, &hg_scanner::setting_remove_morr , &hg_scanner::setting_remove_morr
, &hg_scanner::setting_error_extention , &hg_scanner::setting_error_extention
, &hg_scanner::setting_remove_texture , &hg_scanner::setting_remove_texture

View File

@ -68,6 +68,7 @@ enum
HG_BASE_SETTING_INDEX_FILL_BACKGROUND, // 背景填充方式 HG_BASE_SETTING_INDEX_FILL_BACKGROUND, // 背景填充方式
HG_BASE_SETTING_INDEX_PERMEATE, // 防止渗透 HG_BASE_SETTING_INDEX_PERMEATE, // 防止渗透
HG_BASE_SETTING_INDEX_PERMEATE_LV, // 防止渗透等级 HG_BASE_SETTING_INDEX_PERMEATE_LV, // 防止渗透等级
HG_BASE_SETTING_INDEX_COLOR_FILL, // 色彩填充
HG_BASE_SETTING_INDEX_REMOVE_MORR, // 去除摩尔纹 HG_BASE_SETTING_INDEX_REMOVE_MORR, // 去除摩尔纹
HG_BASE_SETTING_INDEX_ERROR_EXTENTION, // 错误扩散 HG_BASE_SETTING_INDEX_ERROR_EXTENTION, // 错误扩散
HG_BASE_SETTING_INDEX_REMOVE_TXTTURE, // 除网纹 HG_BASE_SETTING_INDEX_REMOVE_TXTTURE, // 除网纹
@ -189,6 +190,7 @@ protected:
int setting_custom_area_right(void* data); int setting_custom_area_right(void* data);
int setting_custom_area_bottom(void* data); int setting_custom_area_bottom(void* data);
int setting_img_quality(void *data); int setting_img_quality(void *data);
int setting_color_fill(void *data);
virtual int on_color_mode_changed(int& color_mode); // COLOR_MODE_xxx virtual int on_color_mode_changed(int& color_mode); // COLOR_MODE_xxx
@ -239,7 +241,8 @@ protected:
int fractate_level_; // 折角检测复杂度 int fractate_level_; // 折角检测复杂度
int scan_count_; // 扫描张数各实例化类在重载set_setting_value中如果发现该设置项对该参数有影响时需要对此值作更改 int scan_count_; // 扫描张数各实例化类在重载set_setting_value中如果发现该设置项对该参数有影响时需要对此值作更改
bool is_auto_matic_color;// 自动颜色识别 bool is_auto_matic_color;// 自动颜色识别
int is_quality_; //画质设置 int is_quality_; // 画质设置
bool is_color_fill; // 色彩填充
SCANCONF img_conf_; //此参数外部不做任何改变请在writedown_image_configuration做修改 SCANCONF img_conf_; //此参数外部不做任何改变请在writedown_image_configuration做修改
std::string img_type_; std::string img_type_;
@ -348,7 +351,7 @@ public:
}; };
#ifdef OEM_HANWANG #ifdef OEM_HANWANG
static const std::string helpfile_ ="/opt/apps/com.hanvonchina.hanvonscan/entries/help/HanVonScan_App_Help_manual.pdf";//帮助文档路径 static const std::string helpfile_ ="/opt/apps/com.hanvonchina.hanvonscan/entries/help/HanvonScan_scanSettings_Help_manual.pdf";//帮助文档路径
#else #else
static const std::string helpfile_ ="/opt/apps/com.huagaochina.huagoscan/entries/help/HuaGoScan_App_Help_manual.pdf";//帮助文档路径 static const std::string helpfile_ ="/opt/apps/com.huagaochina.huagoscan/entries/help/HuaGoScan_scanSettings_Help_manual.pdf";//帮助文档路径
#endif #endif

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long