修复因文件后缀导致cv::im_write异常的问题
This commit is contained in:
parent
b5fd5a1ef7
commit
cdc979ea38
|
@ -225,7 +225,7 @@ namespace hg_imgproc
|
|||
,Dynamicopen_HGBase_pHandle_(NULL)
|
||||
,Dynamicopen_HGImageprc_pHandle_(NULL),isx86_Advan_(isx86_Advan)
|
||||
{
|
||||
cv::setUseOptimized(isx86_Advan_); //开关cpu高级指令集
|
||||
cv::setUseOptimized(isx86_Advan_); //开关cpu高级指令�
|
||||
}
|
||||
~imgproc()
|
||||
{
|
||||
|
@ -326,7 +326,7 @@ namespace hg_imgproc
|
|||
{
|
||||
return SCANNER_ERR_OUT_OF_RANGE;
|
||||
}
|
||||
printf("HGBaselib_path:%s HGImagePrclib_path:%s\r\n",HGBaselib_path.c_str(),HGImagePrclib_path.c_str());
|
||||
printf("HGBaselib_pathï¼?s HGImagePrclib_path:%s\r\n",HGBaselib_path.c_str(),HGImagePrclib_path.c_str());
|
||||
|
||||
Dynamicopen_HGImageprc_pHandle_ = dlopen(HGImagePrclib_path.c_str(), RTLD_LAZY);
|
||||
Dynamicopen_HGBase_pHandle_ = dlopen(HGBaselib_path.c_str(), RTLD_LAZY);
|
||||
|
@ -511,7 +511,7 @@ namespace hg_imgproc
|
|||
catch (const std::exception& e)
|
||||
{
|
||||
LOG_INFO(LOG_LEVEL_FATAL, e.what());
|
||||
throw(e); // 继续抛到上层处理。
|
||||
throw(e); // 继ç»æŠ›åˆ°ä¸Šå±‚处ç<EFBFBD>†ã€?
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -523,7 +523,7 @@ namespace hg_imgproc
|
|||
|
||||
if (pid_ == 0x100 || pid_ == 0x200 || pid_ == 0x300 || pid_ == 0x400 || pid == 0x402 || pid == 0x302)
|
||||
{
|
||||
//////除穿孔算法移至解压图像之后
|
||||
//////除穿å”算法移至解压图åƒ<EFBFBD>之å<EFBFBD>?
|
||||
double left = img_conf_.fillholeratio_left / 100.0;
|
||||
double right = img_conf_.fillholeratio_right / 100.0;
|
||||
double top = img_conf_.fillholeratio_up / 100.0;
|
||||
|
@ -1336,7 +1336,7 @@ namespace hg_imgproc
|
|||
info.width = mats.cols;
|
||||
info.origin = HGBASE_IMGORIGIN_TOP;
|
||||
int bits = mats.channels() == 1 ? 8 : 24;
|
||||
info.widthStep = mats.step; //opencv原始值
|
||||
info.widthStep = mats.step; //opencv原始�
|
||||
info.type = mats.channels() == 1 ? HGBASE_IMGTYPE_GRAY : HGBASE_IMGTYPE_BGR;
|
||||
|
||||
int ret = HGBase_CreatImg(const_cast<uchar*>(mats.data), &info, &image);
|
||||
|
@ -1348,11 +1348,11 @@ namespace hg_imgproc
|
|||
|
||||
|
||||
/// <summary>
|
||||
/// 8位图转1位图
|
||||
/// 8ä½<EFBFBD>图è½?ä½<C3A4>图
|
||||
/// </summary>
|
||||
/// <param name="image">8bit图</param>
|
||||
/// <param name="image">8bitå›?/param>
|
||||
/// <param name="threshold">阈值,建议默认127</param>
|
||||
/// <param name="reverse">true为反色,即黑0白1;反之亦然</param>
|
||||
/// <param name="reverse">true为å<EFBFBD><EFBFBD>色,å<EFBFBD>³é»‘0ç™?ï¼›å<E280BA><C3A5>之亦ç„?/param>
|
||||
/// <param name="align">true为四字节对齐</param>
|
||||
/// <returns>1位图</returns>
|
||||
///
|
||||
|
@ -1766,8 +1766,8 @@ namespace hg_imgproc
|
|||
return SCANNER_ERR_OPEN_FILE_FAILED;
|
||||
|
||||
fseek(src, 0, SEEK_END);
|
||||
len = ftell(src) - fh;
|
||||
if (len <= 0)
|
||||
len = ftell(src);
|
||||
if (len <= fh + sizeof(bih))
|
||||
{
|
||||
fclose(src);
|
||||
|
||||
|
@ -1777,7 +1777,7 @@ namespace hg_imgproc
|
|||
fseek(src, 0, SEEK_SET);
|
||||
fread(&bfh, sizeof(bfh), 1, src);
|
||||
fread(&bih, sizeof(bih), 1, src);
|
||||
if (len < bfh.bfOffBits)
|
||||
if (len < bfh.bfOffBits || len < bfh.bfSize)
|
||||
{
|
||||
fclose(src);
|
||||
|
||||
|
@ -1786,7 +1786,7 @@ namespace hg_imgproc
|
|||
|
||||
// we consider pallete as gray, discard pallete here ...
|
||||
fseek(src, bfh.bfOffBits, SEEK_SET);
|
||||
len -= bfh.bfOffBits;
|
||||
// len -= bfh.bfOffBits;
|
||||
data.reset(new std::vector<unsigned char>(len));
|
||||
fread(&(*data.get())[0], 1, len, src);
|
||||
fclose(src);
|
||||
|
@ -1854,7 +1854,9 @@ namespace hg_imgproc
|
|||
cpr.push_back(resolution_y);
|
||||
if (conv->dst.is_file)
|
||||
{
|
||||
cv::imwrite(conv->dst.data, imsg, cpr);
|
||||
std::string tmp(conv->dst.data);
|
||||
cv::imwrite((tmp + ".jpg").c_str(), imsg, cpr);
|
||||
rename((tmp + ".jpg").c_str(), tmp.c_str());
|
||||
|
||||
//FILE* f = fopen(conv->dst.data, "rb+");
|
||||
//if (f)
|
||||
|
@ -1867,7 +1869,7 @@ namespace hg_imgproc
|
|||
}
|
||||
else
|
||||
{
|
||||
std::string tmpf(hg_log::temporary_path() + PATH_SEPARATOR + "imgtrans.tmp");
|
||||
std::string tmpf(hg_log::temporary_path() + PATH_SEPARATOR + "imgtrans.jpg");
|
||||
cv::imwrite(tmpf.c_str(), imsg, cpr);
|
||||
size_t bytes = 0;
|
||||
conv->dst.data = (SANE_String_Const)G4Tiff::load_mini_file(tmpf.c_str(), &bytes, allocate_memory);
|
||||
|
|
Loading…
Reference in New Issue