117 lines
2.3 KiB
C++
117 lines
2.3 KiB
C++
#include "HGOCR.h"
|
|
#include "HGOCRBase.hpp"
|
|
#include "HGOCRHanvon.hpp"
|
|
#include "HGOCRRetImpl.hpp"
|
|
|
|
HGResult HGAPI HGImgProc_CreateOCRMgr(HGOCRMgr* ocrMgr)
|
|
{
|
|
if (NULL == ocrMgr)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOCRBase* ocrMgrImpl = new HGOCRHanvon;
|
|
HGResult ret = ocrMgrImpl->Init();
|
|
if (HGBASE_ERR_OK != ret)
|
|
{
|
|
delete ocrMgrImpl;
|
|
return ret;
|
|
}
|
|
|
|
*ocrMgr = (HGOCRMgr)ocrMgrImpl;
|
|
return HGBASE_ERR_OK;
|
|
}
|
|
|
|
HGResult HGAPI HGImgProc_DestroyOCRMgr(HGOCRMgr ocrMgr)
|
|
{
|
|
if (NULL == ocrMgr)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
HGResult ret = ocrMgrImpl->Deinit();
|
|
if (HGBASE_ERR_OK != ret)
|
|
{
|
|
return ret;
|
|
}
|
|
|
|
delete ocrMgrImpl;
|
|
return HGBASE_ERR_OK;
|
|
}
|
|
|
|
HGResult HGAPI HGImgProc_ImageOCR(HGOCRMgr ocrMgr, HGImage image, HGOCRRet* ocrRet)
|
|
{
|
|
if (NULL == ocrMgr)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
HGOCRRetImpl* ocrRetImpl = NULL;
|
|
HGResult ret = ocrMgrImpl->ImageOCR(image, &ocrRetImpl);
|
|
if (HGBASE_ERR_OK != ret)
|
|
{
|
|
assert(NULL == ocrRetImpl);
|
|
return ret;
|
|
}
|
|
|
|
*ocrRet = (HGOCRRet)ocrRetImpl;
|
|
return HGBASE_ERR_OK;
|
|
}
|
|
|
|
HGResult HGAPI HGImgProc_DestroyOCRRet(HGOCRMgr ocrRet)
|
|
{
|
|
if (NULL == ocrRet)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOCRRetImpl* ocrRetImpl = (HGOCRRetImpl*)ocrRet;
|
|
delete ocrRetImpl;
|
|
return HGBASE_ERR_OK;
|
|
}
|
|
|
|
HGResult HGAPI HGImgProc_GetOCRRetBlockCount(HGOCRMgr ocrRet, HGUInt* count)
|
|
{
|
|
if (NULL == ocrRet)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOCRRetImpl* ocrRetImpl = (HGOCRRetImpl*)ocrRet;
|
|
return ocrRetImpl->GetBlockCount(count);
|
|
}
|
|
|
|
HGResult HGAPI HGImgProc_GetOCRRetBlockText(HGOCRMgr ocrRet, HGUInt index, const HGChar** text)
|
|
{
|
|
if (NULL == ocrRet)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOCRRetImpl* ocrRetImpl = (HGOCRRetImpl*)ocrRet;
|
|
return ocrRetImpl->GetBlockText(index, text);
|
|
}
|
|
|
|
HGResult HGAPI HGImgProc_ImageOCRToFile(HGOCRMgr ocrMgr, HGImage image, HGUInt outType, const HGChar* outFileName)
|
|
{
|
|
if (NULL == ocrMgr)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
return ocrMgrImpl->ImageOCRToFile(image, outType, outFileName);
|
|
}
|
|
|
|
HGResult HGAPI HGImgProc_ImageTextDirectOCR(HGOCRMgr ocrMgr, HGImage image, HGUInt* direct)
|
|
{
|
|
if (NULL == ocrMgr)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
return ocrMgrImpl->ImageTextDirectOCR(image, direct);
|
|
} |