code_app/imgproc/HGOCR.cpp

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);
}