#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(HGOCRRet ocrRet) { if (NULL == ocrRet) { return HGBASE_ERR_INVALIDARG; } HGOCRRetImpl* ocrRetImpl = (HGOCRRetImpl*)ocrRet; delete ocrRetImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGImgProc_GetOCRRetBlockCount(HGOCRRet ocrRet, HGUInt* count) { if (NULL == ocrRet) { return HGBASE_ERR_INVALIDARG; } HGOCRRetImpl* ocrRetImpl = (HGOCRRetImpl*)ocrRet; return ocrRetImpl->GetBlockCount(count); } HGResult HGAPI HGImgProc_GetOCRRetBlockText(HGOCRRet 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); }