HGImgProc_ImageOCRToFile函数的outType为0时,通过扩展名来判断
This commit is contained in:
parent
e33fbad104
commit
c60ab5e65a
|
@ -104,25 +104,6 @@ BOOL CHGTestDlg::OnInitDialog()
|
|||
SetIcon(m_hIcon, TRUE); // 设置大图标
|
||||
SetIcon(m_hIcon, FALSE); // 设置小图标
|
||||
|
||||
HGOCRMgr hOCRMgr = NULL;
|
||||
HGImgProc_CreateOCRMgr(&hOCRMgr);
|
||||
|
||||
HGImage image = NULL;
|
||||
HGImgFmt_LoadImage("D:\\1.bmp", 0, NULL, HGBASE_IMGTYPE_RGB, HGBASE_IMGORIGIN_TOP, &image);
|
||||
if (NULL != image)
|
||||
{
|
||||
HGOCRRet ocrRet;
|
||||
HGImgProc_ImageOCR(hOCRMgr, image, &ocrRet);
|
||||
|
||||
HGImgProc_ImageOCRToFile(hOCRMgr, image, HGIMGPROC_OCROUTTYPE_PDF, "D:\\1.pdf");
|
||||
|
||||
HGUInt direct;
|
||||
HGImgProc_ImageTextDirectOCR(hOCRMgr, image, &direct);
|
||||
HGBase_DestroyImage(image);
|
||||
}
|
||||
|
||||
HGImgProc_DestroyOCRMgr(hOCRMgr);
|
||||
|
||||
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
|
||||
}
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ HGResult HGAPI HGImgProc_ImageOCR(HGOCRMgr ocrMgr, HGImage image, HGOCRRet* ocrR
|
|||
return HGBASE_ERR_OK;
|
||||
}
|
||||
|
||||
HGResult HGAPI HGImgProc_DestroyOCRRet(HGOCRMgr ocrRet)
|
||||
HGResult HGAPI HGImgProc_DestroyOCRRet(HGOCRRet ocrRet)
|
||||
{
|
||||
if (NULL == ocrRet)
|
||||
{
|
||||
|
@ -72,7 +72,7 @@ HGResult HGAPI HGImgProc_DestroyOCRRet(HGOCRMgr ocrRet)
|
|||
return HGBASE_ERR_OK;
|
||||
}
|
||||
|
||||
HGResult HGAPI HGImgProc_GetOCRRetBlockCount(HGOCRMgr ocrRet, HGUInt* count)
|
||||
HGResult HGAPI HGImgProc_GetOCRRetBlockCount(HGOCRRet ocrRet, HGUInt* count)
|
||||
{
|
||||
if (NULL == ocrRet)
|
||||
{
|
||||
|
@ -83,7 +83,7 @@ HGResult HGAPI HGImgProc_GetOCRRetBlockCount(HGOCRMgr ocrRet, HGUInt* count)
|
|||
return ocrRetImpl->GetBlockCount(count);
|
||||
}
|
||||
|
||||
HGResult HGAPI HGImgProc_GetOCRRetBlockText(HGOCRMgr ocrRet, HGUInt index, const HGChar** text)
|
||||
HGResult HGAPI HGImgProc_GetOCRRetBlockText(HGOCRRet ocrRet, HGUInt index, const HGChar** text)
|
||||
{
|
||||
if (NULL == ocrRet)
|
||||
{
|
||||
|
|
|
@ -9,25 +9,25 @@
|
|||
HG_DECLARE_HANDLE(HGOCRMgr);
|
||||
HG_DECLARE_HANDLE(HGOCRRet);
|
||||
|
||||
/* PDF */
|
||||
#define HGIMGPROC_OCROUTTYPE_PDF 1L
|
||||
/* RTF */
|
||||
#define HGIMGPROC_OCROUTTYPE_RTF 2L
|
||||
#define HGIMGPROC_OCROUTTYPE_RTF 1L
|
||||
/* XLS */
|
||||
#define HGIMGPROC_OCROUTTYPE_XLS 3L
|
||||
#define HGIMGPROC_OCROUTTYPE_XLS 2L
|
||||
/* TXT */
|
||||
#define HGIMGPROC_OCROUTTYPE_TXT 4L
|
||||
#define HGIMGPROC_OCROUTTYPE_TXT 3L
|
||||
/* PDF */
|
||||
#define HGIMGPROC_OCROUTTYPE_PDF 4L
|
||||
/* OFD */
|
||||
#define HGIMGPROC_OCROUTTYPE_OFD 5L
|
||||
|
||||
/* 未旋转 */
|
||||
#define HGIMGPROC_OCRTEXTDIRECT_ORIGINAL 1L
|
||||
/* 顺时针旋转90度 */
|
||||
#define HGIMGPROC_OCRTEXTDIRECT_RIGHT 2L
|
||||
/* 逆时针旋转90度 */
|
||||
#define HGIMGPROC_OCRTEXTDIRECT_LEFT 3L
|
||||
/* 旋转180度 */
|
||||
#define HGIMGPROC_OCRTEXTDIRECT_180 4L
|
||||
#define HGIMGPROC_OCRTEXTDIRECT_ORI 1L
|
||||
/* 顺时针旋转了90度 */
|
||||
#define HGIMGPROC_OCRTEXTDIRECT_RIGHT 2L
|
||||
/* 逆时针旋转了90度 */
|
||||
#define HGIMGPROC_OCRTEXTDIRECT_LEFT 3L
|
||||
/* 旋转了180度 */
|
||||
#define HGIMGPROC_OCRTEXTDIRECT_180 4L
|
||||
|
||||
/* 初始化OCR模块
|
||||
*/
|
||||
|
@ -43,15 +43,15 @@ HGEXPORT HGResult HGAPI HGImgProc_ImageOCR(HGOCRMgr ocrMgr, HGImage image, HGOCR
|
|||
|
||||
/* 销毁OCR结果
|
||||
*/
|
||||
HGEXPORT HGResult HGAPI HGImgProc_DestroyOCRRet(HGOCRMgr ocrRet);
|
||||
HGEXPORT HGResult HGAPI HGImgProc_DestroyOCRRet(HGOCRRet ocrRet);
|
||||
|
||||
/* 获取OCR结果块数量
|
||||
*/
|
||||
HGEXPORT HGResult HGAPI HGImgProc_GetOCRRetBlockCount(HGOCRMgr ocrRet, HGUInt *count);
|
||||
HGEXPORT HGResult HGAPI HGImgProc_GetOCRRetBlockCount(HGOCRRet ocrRet, HGUInt *count);
|
||||
|
||||
/* 获取OCR结果块文本
|
||||
*/
|
||||
HGEXPORT HGResult HGAPI HGImgProc_GetOCRRetBlockText(HGOCRMgr ocrRet, HGUInt index, const HGChar **text);
|
||||
HGEXPORT HGResult HGAPI HGImgProc_GetOCRRetBlockText(HGOCRRet ocrRet, HGUInt index, const HGChar **text);
|
||||
|
||||
/* 图像OCR到文件
|
||||
*/
|
||||
|
|
|
@ -1 +1,70 @@
|
|||
#include "HGOCRBase.hpp"
|
||||
#include "HGOCRBase.hpp"
|
||||
#include "HGOCR.h"
|
||||
|
||||
HGUInt HGOCRBase::GetOutTypeByFileName(const HGChar* fileName)
|
||||
{
|
||||
if (NULL == fileName)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* p = strrchr(fileName, '.');
|
||||
if (NULL == p)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(HG_CMP_MSC)
|
||||
if (0 == _stricmp(p, ".pdf"))
|
||||
{
|
||||
return HGIMGPROC_OCROUTTYPE_PDF;
|
||||
}
|
||||
|
||||
if (0 == _stricmp(p, ".rtf"))
|
||||
{
|
||||
return HGIMGPROC_OCROUTTYPE_RTF;
|
||||
}
|
||||
|
||||
if (0 == _stricmp(p, ".xls"))
|
||||
{
|
||||
return HGIMGPROC_OCROUTTYPE_XLS;
|
||||
}
|
||||
|
||||
if (0 == _stricmp(p, ".txt"))
|
||||
{
|
||||
return HGIMGPROC_OCROUTTYPE_TXT;
|
||||
}
|
||||
|
||||
if (0 == _stricmp(p, ".ofd"))
|
||||
{
|
||||
return HGIMGPROC_OCROUTTYPE_OFD;
|
||||
}
|
||||
#else
|
||||
if (0 == strcasecmp(p, ".pdf"))
|
||||
{
|
||||
return HGIMGPROC_OCROUTTYPE_PDF;
|
||||
}
|
||||
|
||||
if (0 == strcasecmp(p, ".rtf"))
|
||||
{
|
||||
return HGIMGPROC_OCROUTTYPE_RTF;
|
||||
}
|
||||
|
||||
if (0 == strcasecmp(p, ".xls"))
|
||||
{
|
||||
return HGIMGPROC_OCROUTTYPE_XLS;
|
||||
}
|
||||
|
||||
if (0 == strcasecmp(p, ".txt"))
|
||||
{
|
||||
return HGIMGPROC_OCROUTTYPE_TXT;
|
||||
}
|
||||
|
||||
if (0 == strcasecmp(p, ".ofd"))
|
||||
{
|
||||
return HGIMGPROC_OCROUTTYPE_OFD;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -15,6 +15,9 @@ public:
|
|||
virtual HGResult ImageOCR(HGImage image, class HGOCRRetImpl **ocrRet) = 0;
|
||||
virtual HGResult ImageOCRToFile(HGImage image, HGUInt outType, const HGChar *outFileName) = 0;
|
||||
virtual HGResult ImageTextDirectOCR(HGImage image, HGUInt* direct) = 0;
|
||||
|
||||
protected:
|
||||
static HGUInt GetOutTypeByFileName(const HGChar* fileName);
|
||||
};
|
||||
|
||||
#endif /* __HGOCRBASE_H__ */
|
|
@ -118,22 +118,29 @@ HGResult HGOCRHanvon::ImageOCR(HGImage image, class HGOCRRetImpl **ocrRet)
|
|||
|
||||
HGResult HGOCRHanvon::ImageOCRToFile(HGImage image, HGUInt outType, const HGChar *outFileName)
|
||||
{
|
||||
if (NULL == image || outType < HGIMGPROC_OCROUTTYPE_PDF || outType > HGIMGPROC_OCROUTTYPE_OFD || NULL == outFileName)
|
||||
if (NULL == image || outType > HGIMGPROC_OCROUTTYPE_OFD || NULL == outFileName)
|
||||
{
|
||||
return HGBASE_ERR_INVALIDARG;
|
||||
}
|
||||
|
||||
if (0 == outType)
|
||||
outType = GetOutTypeByFileName(outFileName);
|
||||
|
||||
int fileType = -1;
|
||||
if (HGIMGPROC_OCROUTTYPE_PDF == outType)
|
||||
fileType = FILE_PDF;
|
||||
else if (HGIMGPROC_OCROUTTYPE_RTF == outType)
|
||||
if (HGIMGPROC_OCROUTTYPE_RTF == outType)
|
||||
fileType = FILE_RTF;
|
||||
else if (HGIMGPROC_OCROUTTYPE_XLS == outType)
|
||||
fileType = FILE_XLS;
|
||||
else if (HGIMGPROC_OCROUTTYPE_TXT == outType)
|
||||
fileType = FILE_TXT;
|
||||
else if (HGIMGPROC_OCROUTTYPE_PDF == outType)
|
||||
fileType = FILE_PDF;
|
||||
else if (HGIMGPROC_OCROUTTYPE_OFD == outType)
|
||||
fileType = FILE_OFD;
|
||||
if (-1 == fileType)
|
||||
{
|
||||
return HGBASE_ERR_INVALIDARG;
|
||||
}
|
||||
|
||||
HGChar tmpFileName[256];
|
||||
HGBase_GetTmpFileName(tmpFileName, 256);
|
||||
|
@ -174,7 +181,7 @@ HGResult HGOCRHanvon::ImageTextDirectOCR(HGImage image, HGUInt* direct)
|
|||
}
|
||||
|
||||
if (ROT0 == dire)
|
||||
*direct = HGIMGPROC_OCRTEXTDIRECT_ORIGINAL;
|
||||
*direct = HGIMGPROC_OCRTEXTDIRECT_ORI;
|
||||
else if (ROT90 == dire)
|
||||
*direct = HGIMGPROC_OCRTEXTDIRECT_RIGHT;
|
||||
else if (ROT180 == dire)
|
||||
|
|
Loading…
Reference in New Issue