This commit is contained in:
13038267101 2022-11-23 14:24:30 +08:00
commit a0fd6d003e
14 changed files with 129 additions and 53 deletions

View File

@ -1,5 +1,6 @@
#include "HGBmp.h"
#include "../base/HGInc.h"
#include "../base/HGInfo.h"
extern "C"
{
#include "libnsbmp.h"
@ -297,6 +298,7 @@ HGResult HGAPI HGImgFmt_SaveBmpImage(HGImage image, const HGBmpSaveInfo* info, c
FILE* file = fopen(fileName, "wb");
if (NULL == file)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGImgFmt_SaveBmpImage: Create File Faild, %s", fileName);
return HGBASE_ERR_ACCESSDENIED;
}

View File

@ -1,5 +1,6 @@
#include "HGGif.h"
#include "../base/HGInc.h"
#include "../base/HGInfo.h"
#include "gif_lib.h"
struct HGGifReaderImpl
@ -753,6 +754,7 @@ HGResult HGAPI HGImgFmt_OpenGifWriter(const HGChar* fileName, const HGGifSaveInf
GifFileType* gifFile = EGifOpenFileName(fileName, false, &err);
if (NULL == gifFile)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGImgFmt_OpenGifWriter: Create File Faild, %s", fileName);
return HGBASE_ERR_ACCESSDENIED;
}

View File

@ -305,6 +305,7 @@ HGResult HGAPI HGImgFmt_SaveJpegImage(HGImage image, const HGJpegSaveInfo* info,
FILE* file = fopen(fileName, "wb");
if (NULL == file)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGImgFmt_SaveJpegImage: Create File Faild, %s", fileName);
return HGBASE_ERR_ACCESSDENIED;
}

View File

@ -1,5 +1,6 @@
#include "HGOfdImpl.hpp"
#include "../base/HGInc.h"
#include "../base/HGInfo.h"
#include "../base/HGUtility.h"
#include "HGString.h"
@ -548,6 +549,7 @@ HGResult HGOfdImageWriterImpl::Open(const HGChar* fileName)
m_zip = zip_open(StdStringToUtf8(fileName).c_str(), ZIP_CREATE | ZIP_TRUNCATE, &error);
if (NULL == m_zip)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGOfdImageWriterImpl::Open: Create File Faild, %s", fileName);
return HGBASE_ERR_FAIL;
}

View File

@ -601,6 +601,8 @@ HGResult HGPdfImageWriterImpl::Open(const HGChar* fileName)
if (-1 == PDF_begin_document(p, (const char*)pUnicode, (int)(GetUnicodeStrLen(pUnicode) * sizeof(uint16_t)), ""))
#endif
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGPdfImageWriterImpl::Open: Create File Faild, %s", fileName);
delete[] pUnicode;
PDF_delete(p);
HGBase_DestroyDll(m_dll);

View File

@ -1,5 +1,6 @@
#include "HGPng.h"
#include "../base/HGInc.h"
#include "../base/HGInfo.h"
#include "png.h"
#include "pngstruct.h"
#include "pnginfo.h"
@ -299,6 +300,7 @@ HGResult HGAPI HGImgFmt_SavePngImage(HGImage image, const HGPngSaveInfo* info, c
FILE* file = fopen(fileName, "wb");
if (NULL == file)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGImgFmt_SavePngImage: Create File Faild, %s", fileName);
return HGBASE_ERR_ACCESSDENIED;
}

View File

@ -490,6 +490,7 @@ static HGResult PnmSaveImage(HGImage image, const HGChar* fileName, HGUInt pnmTy
FILE* file = fopen(fileName, "wb");
if (NULL == file)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "PnmSaveImage: Create File Faild, %s", fileName);
return HGBASE_ERR_ACCESSDENIED;
}

View File

@ -1,5 +1,6 @@
#include "HGTiff.h"
#include "../base/HGInc.h"
#include "../base/HGInfo.h"
#include "tiffio.h"
HGResult HGAPI HGImgFmt_CheckTiffFile(const HGChar* fileName, HGBool* isTiff)
@ -233,6 +234,7 @@ HGResult HGAPI HGImgFmt_OpenTiffWriter(const HGChar* fileName, HGTiffWriter* wri
TIFF* tif = TIFFOpen(fileName, "w");
if (NULL == tif)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGImgFmt_OpenTiffWriter: Create File Faild, %s", fileName);
return HGBASE_ERR_ACCESSDENIED;
}

View File

@ -1,13 +1,11 @@
#include "HGOCRHanvon.hpp"
#include "HGOCR.h"
#include "HGOCRRetImpl.hpp"
#include "HGOCRRetImpl.hpp"
#include "../base/HGUtility.h"
#include "../base/HGInfo.h"
#include "../imgfmt/HGBmp.h"
#include "../imgfmt/HGJpeg.h"
HGUInt HGOCRHanvon::m_refCount = 0;
//HGUInt HGOCRHanvon::m_refCount = 0;
//HGOCRHanvon* HGOCRHanvon::m_OCR = NULL;
HGOCRHanvon::HGOCRHanvon()
@ -59,11 +57,11 @@ HGResult HGOCRHanvon::Init()
return HGIMGPROC_ERR_FAIL;
}
if (0 == m_refCount)
{
//if (0 == m_refCount)
//{
//HWOCR_InitPdf();
}
++m_refCount;
//}
//++m_refCount;
return HGBASE_ERR_OK;
}
@ -77,12 +75,12 @@ HGResult HGOCRHanvon::Deinit()
ClearImageList();
assert(0 != m_refCount);
--m_refCount;
if (0 == m_refCount)
{
//assert(0 != m_refCount);
//--m_refCount;
//if (0 == m_refCount)
//{
//HWOCR_ExitPdf();
}
//}
HWOCR_SDKExit(m_ocrHandle);
m_ocrHandle = NULL;
@ -101,19 +99,23 @@ HGResult HGOCRHanvon::ImageOCR(HGImage image, class HGOCRRetImpl **ocrRet)
HGChar tmpFileName[256];
HGBase_GetTmpFileName("bmp", tmpFileName, 256);
HGImgFmt_SaveBmpImage(image, NULL, tmpFileName);
HGResult ret = HGImgFmt_SaveBmpImage(image, NULL, tmpFileName);
if (HGBASE_ERR_OK != ret)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGOCRHanvon::ImageOCR: Save Temp File Failed");
return ret;
}
char* rst = NULL;
int len = 0;
int ret = HWOCR_RecognizeFile2Str((unsigned char*)tmpFileName, m_ocrHandle, &rst, &len);
if (0 != ret)
int rc = HWOCR_RecognizeFile2Str((unsigned char*)tmpFileName, m_ocrHandle, &rst, &len);
HGBase_DeleteFile(tmpFileName);
if (0 != rc)
{
HGBase_DeleteFile(tmpFileName);
return HGIMGPROC_ERR_FAIL;
}
assert(NULL != rst && len > 0);
HGBase_DeleteFile(tmpFileName);
std::vector<std::string> blockInfo;
blockInfo.push_back(rst);
@ -151,19 +153,27 @@ HGResult HGOCRHanvon::ImageOCRToFile(HGImage image, HGUInt outType, const HGChar
HGChar tmpFileName[256];
HGBase_GetTmpFileName("bmp", tmpFileName, 256);
HGImgFmt_SaveBmpImage(image, NULL, tmpFileName);
HGChar tmpDir[256];
HGBase_GetTmpPath(tmpDir, 256);
int ret = HWOCR_RecognizeFile((unsigned char*)tmpFileName, (unsigned char*)outFileName, fileType, m_ocrHandle, NULL, tmpDir);
if (0 != ret)
HGResult ret = HGImgFmt_SaveBmpImage(image, NULL, tmpFileName);
if (HGBASE_ERR_OK != ret)
{
HGBase_DeleteFile(tmpFileName);
return HGIMGPROC_ERR_FAIL;
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGOCRHanvon::ImageOCRToFile: Save Temp File Failed");
return ret;
}
HGChar tmpDir[256];
HGBase_GetTmpFileName(NULL, tmpDir, 256);
ret = HGBase_CreateDir(tmpDir);
if (HGBASE_ERR_OK != ret)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGOCRHanvon::ImageOCRToFile: Create Temp Dir Failed");
HGBase_DeleteFile(tmpFileName);
return ret;
}
int rc = HWOCR_RecognizeFile((unsigned char*)tmpFileName, (unsigned char*)outFileName, fileType, m_ocrHandle, NULL, tmpDir);
HGBase_DeleteDir(tmpDir);
HGBase_DeleteFile(tmpFileName);
return HGBASE_ERR_OK;
return (0 == rc) ? HGBASE_ERR_OK : HGIMGPROC_ERR_FAIL;
}
HGResult HGOCRHanvon::ImageTextDirectOCR(HGImage image, HGUInt* direct)
@ -175,13 +185,18 @@ HGResult HGOCRHanvon::ImageTextDirectOCR(HGImage image, HGUInt* direct)
HGChar tmpFileName[256];
HGBase_GetTmpFileName("bmp", tmpFileName, 256);
HGImgFmt_SaveBmpImage(image, NULL, tmpFileName);
HGResult ret = HGImgFmt_SaveBmpImage(image, NULL, tmpFileName);
if (HGBASE_ERR_OK != ret)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGOCRHanvon::ImageTextDirectOCR: Save Temp File Failed");
return ret;
}
int dire = -1;
int ret = HWOCR_GetFileDirect((unsigned char*)tmpFileName, m_ocrHandle, &dire);
if (0 != ret)
int rc = HWOCR_GetFileDirect((unsigned char*)tmpFileName, m_ocrHandle, &dire);
HGBase_DeleteFile(tmpFileName);
if (0 != rc)
{
HGBase_DeleteFile(tmpFileName);
return HGIMGPROC_ERR_FAIL;
}
@ -194,7 +209,6 @@ HGResult HGOCRHanvon::ImageTextDirectOCR(HGImage image, HGUInt* direct)
else if (ROT270 == dire)
*direct = HGIMGPROC_OCRTEXTDIRECT_LEFT;
HGBase_DeleteFile(tmpFileName);
return HGBASE_ERR_OK;
}
@ -210,6 +224,7 @@ HGResult HGOCRHanvon::AddToImageList(HGImage image)
HGResult ret = HGImgFmt_SaveJpegImage(image, NULL, tmpFileName);
if (HGBASE_ERR_OK != ret)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGOCRHanvon::AddToImageList: Save Temp File Failed");
return ret;
}
@ -269,12 +284,26 @@ HGResult HGOCRHanvon::ImageListOCRToFile(HGUInt outType, const HGChar* outFileNa
ppImageFiles[m_imageList.size()] = NULL;
HGChar tmpDir[256];
HGBase_GetTmpPath(tmpDir, 256);
HGBase_GetTmpFileName(NULL, tmpDir, 256);
HGResult ret = HGBase_CreateDir(tmpDir);
if (HGBASE_ERR_OK == ret)
{
#if defined(HG_CMP_MSC)
int ret = HWOCR_RecognizeFileBatch(ppImageFiles, (unsigned char*)outFileName, fileType, m_ocrHandle, NULL, tmpDir, RecogProgress, IsCanceled);
int rc = HWOCR_RecognizeFileBatch(ppImageFiles, (unsigned char*)outFileName, fileType, m_ocrHandle, NULL, tmpDir, RecogProgress, IsCanceled);
#else
int ret = HWOCR_RecognizeFileBatch(ppImageFiles, (unsigned char*)outFileName, fileType, m_ocrHandle, NULL, tmpDir);
int rc = HWOCR_RecognizeFileBatch(ppImageFiles, (unsigned char*)outFileName, fileType, m_ocrHandle, NULL, tmpDir);
#endif
if (0 != rc)
{
ret = HGIMGPROC_ERR_FAIL;
}
HGBase_DeleteDir(tmpDir);
}
else
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGOCRHanvon::ImageListOCRToFile: Create Temp Dir Failed");
}
delete[] ppImageFiles;
m_param = NULL;
@ -288,7 +317,7 @@ HGResult HGOCRHanvon::ImageListOCRToFile(HGUInt outType, const HGChar* outFileNa
}
m_imageList.clear();
return (0 != ret) ? HGIMGPROC_ERR_FAIL : HGBASE_ERR_OK;
return ret;
}
int HGOCRHanvon::HWOCR_SDKInitialize(void** ppstOcrHandle)

View File

@ -47,7 +47,7 @@ private:
#endif
private:
static HGUInt m_refCount;
//static HGUInt m_refCount;
//static HGOCRHanvon* m_OCR;
HGDll m_dll;
void* m_ocrHandle;

View File

@ -128,9 +128,14 @@ HGResult HGOCRTesseract::ImageOCRToFile(HGImage image, HGUInt outType, const HGC
HGChar tmpFileName[256];
HGBase_GetTmpFileName("bmp", tmpFileName, 256);
HGImgFmt_SaveBmpImage(image, NULL, tmpFileName);
HGResult ret = HGImgFmt_SaveBmpImage(image, NULL, tmpFileName);
if (HGBASE_ERR_OK != ret)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGOCRTesseract::ImageOCRToFile: Save Temp File Failed");
return ret;
}
HGResult ret = OCRToFile(tmpFileName, outType, outFileName);
ret = OCRToFile(tmpFileName, outType, outFileName);
HGBase_DeleteFile(tmpFileName);
return ret;
}
@ -211,6 +216,7 @@ HGResult HGOCRTesseract::AddToImageList(HGImage image)
HGResult ret = HGImgFmt_OpenTiffWriter(m_tiffFileName.c_str(), &m_tiffWriter);
if (HGBASE_ERR_OK != ret)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HGOCRTesseract::AddToImageList: Create Temp File Failed");
m_tiffFileName.clear();
return ret;
}
@ -247,6 +253,11 @@ HGResult HGOCRTesseract::ImageListOCRToFile(HGUInt outType, const HGChar* outFil
if (0 == outType)
outType = GetOutTypeByFileName(outFileName);
if (HGIMGPROC_OCROUTTYPE_PDF != outType && HGIMGPROC_OCROUTTYPE_TXT != outType)
{
return HGBASE_ERR_INVALIDARG;
}
HGImgFmt_CloseTiffWriter(m_tiffWriter);
m_tiffWriter = NULL;
assert(!m_tiffFileName.empty());

View File

@ -70,7 +70,7 @@ static HGResult GetServerConfig(HGServerConfig& config)
CURLcode res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
else
{
std::string str_json = out.str(); // 返回值
@ -154,7 +154,7 @@ static HGResult CrashFileUpload(const std::string& crashFilePath, std::string& c
CURLcode res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
else
{
std::string str_json = out.str(); // 返回值
@ -290,7 +290,7 @@ static void GetMacAddrList(std::vector<std::string>& macList)
DIR* dir = opendir("/sys/class/net");
if (NULL != dir)
{
printf("opendir success\n");
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "GetMacAddrList: opendir success");
struct dirent* ent;
while ((ent = readdir(dir)) != NULL)
@ -302,7 +302,7 @@ static void GetMacAddrList(std::vector<std::string>& macList)
|| strstr(ent->d_name, "ip6tnl") == ent->d_name || strcmp(ent->d_name, "lo") == 0)
continue;
printf("name %s\n", ent->d_name);
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "GetMacAddrList: name %s", ent->d_name);
char addrPath[256];
sprintf(addrPath, "/sys/class/net/%s/address", ent->d_name);
@ -327,12 +327,12 @@ static void GetMacAddrList(std::vector<std::string>& macList)
macList.push_back(mac);
}
printf("mac %s\n", mac);
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "GetMacAddrList: mac %s", mac);
fclose(file);
}
else
{
printf("fopen fail\n");
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "GetMacAddrList: fopen fail %s", addrPath);
}
}
@ -340,7 +340,7 @@ static void GetMacAddrList(std::vector<std::string>& macList)
}
else
{
printf("opendir fail\n");
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "GetMacAddrList: opendir fail %s", "/sys/class/net");
}
#endif
}
@ -598,7 +598,7 @@ static HGResult PostInfo(int type, const std::string& appName, const std::string
CURLcode res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
else
{
std::string str_json = out.str(); // 返回值
@ -705,7 +705,7 @@ static HGResult PostDeviceInfo(const std::string& devName, const std::string& de
CURLcode res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
else
{
std::string str_json = out.str(); // 返回值
@ -803,7 +803,7 @@ static HGResult PostDeviceLockInfo(const std::string& devName, const std::string
CURLcode res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
else
{
std::string str_json = out.str(); // 返回值
@ -909,7 +909,7 @@ static HGResult PostUserInfo(const std::string& appName, HGUInt powerOn, HGUInt
CURLcode res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
else
{
std::string str_json = out.str(); // 返回值
@ -974,7 +974,7 @@ static HGResult GetVersionList(const std::string& appName, std::list<VersionInfo
CURLcode res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
else
{
std::string str_json = out.str(); // 返回值
@ -1084,12 +1084,16 @@ static HGResult HttpDownload(const std::string& url, const std::string& saveFile
CURLcode res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
else
ret = HGBASE_ERR_OK;
fclose(fp);
}
else
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "HttpDownload: Create File Fail %s", saveFilePath.c_str());
}
curl_easy_cleanup(curl);
}
@ -1587,7 +1591,7 @@ HGResult HGVersionMgrImpl::BlackListCheck(const HGChar* devSN, HGBool* inList)
CURLcode res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
else
{
std::string str_json = out.str(); // 返回值
@ -1652,7 +1656,7 @@ static HGResult GetDriverVersionList(const std::string& devType, std::list<Versi
CURLcode res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
else
{
std::string str_json = out.str(); // 返回值

View File

@ -910,6 +910,7 @@ namespace ver_1
zip* z = zip_open(StdStringToUtf8(fileName).c_str(), ZIP_CREATE | ZIP_TRUNCATE, &error);
if (NULL == z)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "ManagerV1::ExportZipFile Create File Fail %s", fileName.c_str());
return false;
}
@ -1458,6 +1459,10 @@ namespace ver_1
fclose(file);
ret = true;
}
else
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "ManagerV1::SaveFileNameList Create File Fail %s", cfgName.c_str());
}
return ret;
}
@ -1599,6 +1604,10 @@ namespace ver_1
delete[] data;
fclose(file);
}
else
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "ManagerV1::SaveBase64 Create File Fail %s", fileName.c_str());
}
return ret;
}

View File

@ -755,6 +755,7 @@ namespace ver_2
zip* z = zip_open(StdStringToUtf8(outZipPath2).c_str(), ZIP_CREATE | ZIP_TRUNCATE, &error);
if (NULL == z)
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "ManagerV1::ExportZipFile Create File Fail %s", outZipPath2.c_str());
return -1;
}
@ -2789,6 +2790,10 @@ namespace ver_2
delete[] data;
fclose(file);
}
else
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "ManagerV2::SaveBase64 Create File Fail %s", fileName.c_str());
}
if (0 != ret)
HGBase_DeleteFile(fileName.c_str());
@ -3733,6 +3738,10 @@ namespace ver_2
ret = true;
fclose(file);
}
else
{
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "ManagerV2::SaveToFile Create File Fail %s", filePath.c_str());
}
if (!ret)
HGBase_DeleteFile(filePath.c_str());