mirror of http://192.168.1.51:8099/lmh188/twain3.0
修改对折协议地址以及部分对折处理。
2021.2.4 修改对折ID为0x8037 2021.2.5 对折算法默认填充黑色修改为白色 修改对折前旋转正面图像180°
This commit is contained in:
parent
0938e8467c
commit
f1738d9a47
|
@ -269,7 +269,7 @@ void ImageMatQueue::setparam(const GScanCap& param)
|
|||
|
||||
if (scanParam.en_fold)
|
||||
{
|
||||
m_iaList.push_back(shared_ptr<CImageApply>(new CImageApplyConcatenation(CImageApplyConcatenation::horizontal)));
|
||||
m_iaList.push_back(shared_ptr<CImageApply>(new CImageApplyConcatenation(CImageApplyConcatenation::horizontal,cv::Scalar(255,255,255))));
|
||||
}
|
||||
|
||||
if (param.imageRotateDegree != 0.0 || param.is_backrotate180 || param.is_autotext)
|
||||
|
@ -325,10 +325,9 @@ bool ImageMatQueue::queuesempty()
|
|||
static int index = 0;
|
||||
void ImageMatQueue::proc()
|
||||
{
|
||||
SYSTEM_INFO sys;
|
||||
GetSystemInfo(&sys);
|
||||
int dwnumber = std::thread::thread::hardware_concurrency();
|
||||
std::unique_ptr<ThreadPool> m_threadpool;
|
||||
m_threadpool.reset(new ThreadPool(sys.dwNumberOfProcessors < 4 ? 1 : sys.dwNumberOfProcessors / 2));
|
||||
m_threadpool.reset(new ThreadPool(dwnumber < 4 ? 1 : dwnumber / 2));
|
||||
while (bRun) {
|
||||
while (m_imagedata.Size() > 0) {
|
||||
this_thread::sleep_for(chrono::milliseconds(1));
|
||||
|
@ -351,10 +350,6 @@ void ImageMatQueue::proc()
|
|||
|
||||
void ImageMatQueue::imageproceing(std::vector<std::shared_ptr<std::vector<char>>>& buffs)
|
||||
{
|
||||
//std::ostringstream oss;
|
||||
//oss << std::this_thread::get_id();
|
||||
//std::string stid = oss.str();
|
||||
//writelog(stid);
|
||||
vector<cv::Mat> mats;
|
||||
for (auto& buf : buffs) {
|
||||
ImreadModes rmc;
|
||||
|
@ -421,7 +416,10 @@ void ImageMatQueue::imageproceing(std::vector<std::shared_ptr<std::vector<char>>
|
|||
//FileTools::write_log("1.txt", " dogear time " + to_string(sw.elapsed_ms()));
|
||||
if (scanParam.is_switchfrontback)
|
||||
swap(mats[0], mats[1]);
|
||||
|
||||
if (scanParam.en_fold != 0) {
|
||||
cv::flip(mats[0], mats[0], 1);
|
||||
cv::flip(mats[0], mats[0], 0);
|
||||
}
|
||||
for (int j = 0; j < m_iaList.size(); j++) {
|
||||
m_iaList[j]->apply(mats, scanParam.is_duplex);
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
CImageApplyConcatenation::CImageApplyConcatenation()
|
||||
: m_direction(autoDirection)
|
||||
, m_BG_color(0, 0, 0)
|
||||
, m_BG_color(255, 255, 255)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ enum class CapTypeEx : unsigned short {
|
|||
TwEx_Sharpen = 0x8022,
|
||||
TwEx_DBAreaNum = 0x8027,
|
||||
TwEx_DBDevnMax = 0x8028,
|
||||
TwEx_EnFold=0x8037,
|
||||
TwEx_StableDetectEnable = 0x8090,
|
||||
TwEx_UVModel = 0x8093,
|
||||
TwEx_SwitchFrontBack = 0x8094,
|
||||
|
@ -77,7 +78,7 @@ using namespace std::placeholders;
|
|||
TWPP_ENTRY_MFC(HuagaoDs)
|
||||
|
||||
static constexpr const Identity srcIdent(
|
||||
Version(3, 3, Language::English, Country::China, "v3.3.4.2"),
|
||||
Version(3, 3, Language::English, Country::China, "v3.3.4.3"),
|
||||
DataGroup::Image,
|
||||
#ifdef MAKEHUAGAO
|
||||
"HUAGO",
|
||||
|
@ -717,7 +718,6 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_haveError = false;
|
||||
updataGscanCap();
|
||||
bmpData->resize(sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER));
|
||||
|
@ -1258,11 +1258,26 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
|||
return CapSupGetAllReset<Bool, Bool, CapType::IAutomaticBorderDetection>(msg, data, { false,true }, m_autoboarderdetcet, false, m_autoboarderdetcet ? 1 : 0, 0);
|
||||
};
|
||||
|
||||
m_query[CapType::IImageMerge] = msgSupportGetAllSetReset;
|
||||
m_caps[CapType::IImageMerge] = [this](Msg msg, Capability& data)->Result {
|
||||
//m_query[CapType::IImageMerge] = msgSupportGetAllSetReset;
|
||||
//m_caps[CapType::IImageMerge] = [this](Msg msg, Capability& data)->Result {
|
||||
// if (Msg::Set == msg) {
|
||||
// auto autocrop = data.currentItem<CapType::IImageMerge>();
|
||||
// m_scanparam->en_fold = (byte)autocrop;
|
||||
// if ((UInt16)autocrop != 0){
|
||||
// m_scanparam->is_duplex = 1;
|
||||
// m_scanparam->autodescrew = 1;//合并可用时 默认自动纠偏
|
||||
// m_scanparam->is_autodiscradblank_normal = m_scanparam->is_autodiscradblank_vince = 0;
|
||||
// }
|
||||
// return success();
|
||||
// }
|
||||
// return CapSupGetAllResetEx<byte, UInt16, CapType::IImageMerge>(msg, data, m_scanparam->en_fold, 0);
|
||||
//};
|
||||
|
||||
m_query[CapType(CapTypeEx::TwEx_EnFold)] = msgSupportGetAllSetReset;
|
||||
m_caps[CapType(CapTypeEx::TwEx_EnFold)] = [this](Msg msg, Capability& data)->Result {
|
||||
if (Msg::Set == msg) {
|
||||
auto autocrop = data.currentItem<CapType::IImageMerge>();
|
||||
m_scanparam->en_fold = (byte)autocrop;
|
||||
auto autocrop = data.currentItem<Int32>();
|
||||
m_scanparam->en_fold = (Int32)autocrop;
|
||||
if ((UInt16)autocrop != 0){
|
||||
m_scanparam->is_duplex = 1;
|
||||
m_scanparam->autodescrew = 1;//合并可用时 默认自动纠偏
|
||||
|
@ -1270,7 +1285,7 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
|||
}
|
||||
return success();
|
||||
}
|
||||
return CapSupGetAllResetEx<byte, UInt16, CapType::IImageMerge>(msg, data, m_scanparam->en_fold, 0);
|
||||
return CapSupGetAllResetEx<byte, Int32, (CapType)CapTypeEx::TwEx_EnFold>(msg, data, { 0,1 }, m_scanparam->en_fold, 0,m_scanparam->en_fold ? 1 : 0, 0);
|
||||
};
|
||||
|
||||
m_query[CapType::IAutoDiscardBlankPages] = msgSupportGetAllSetReset;
|
||||
|
|
BIN
huagao/stdafx.h
BIN
huagao/stdafx.h
Binary file not shown.
Loading…
Reference in New Issue